home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 63.zip / BS1 part 63 / Video Tracker dev. kit d1.adf / Source / ColorGrid.s next >
Text File  |  1993-08-09  |  49KB  |  2,062 lines

  1. rout            ;when this is off, the routine-file will be
  2.             ;assembled, on=testing
  3.             
  4. ;debug            ;when this is on, colors in the background will
  5.             ;show how much time the routine needs.
  6.  
  7.  
  8. routinemode    equ    27008    ;the routinemode !
  9.  
  10.  
  11. ; the first part of the source handles the things that are necessary to
  12. ; show the picture/copper and playing of the routine.
  13. ; the part between the "******************" lines is the routine-source.
  14. ; at the bottom of the file, there are the necessary incbin-files who
  15. ; are needed to test the routine.
  16. ; these are saved with "save effect" in videotracker. they are raw
  17. ; data files which can be fonts,pictures,landscapes,vectorobjects
  18. ; etcetra.
  19. ; the incbin-files are put in the "variables" table, in the routine-
  20. ; player-handler
  21. ; the place where it's done can be found by searching for "!!!"
  22.  
  23.  
  24.     opt    a+    ;devpac 3 optimize
  25.     opt    o+
  26.  
  27.     ifd    rout
  28.     
  29.     ;videotracker routine-test
  30.  
  31.     incdir    "videotracker:include/"
  32.     include    "exec/types.i"
  33.     include    "graphics/gfxbase.i"
  34.     include    "lvo/graphics_lib.i"
  35.     incdir    'videotracker:effect/'
  36.  
  37. vew_wid    equ    44
  38. vew_hgt    equ    290
  39. win_hgt    equ    117
  40. win_str    equ    $1a
  41.  
  42.     SECTION    1,CODE_C
  43. tus
  44.     move.l    ($4).w,a6
  45.     sub.l    a1,a1
  46.     jsr    -$126(a6)        ;findtask
  47.     move.l    d0,curtsk
  48.     move.l    d0,a0
  49.     move.l    $b8(a0),tskpri
  50.  
  51.     lea    dosnam,a1        ;doslib openen
  52.     moveq.l    #0,d0
  53.     move.l    (4).w,a6
  54.     jsr    -408(a6)        ;openlib
  55.     move.l    d0,doslib
  56.  
  57.     bsr.s    label5            ;videotracker opstarten
  58.     
  59.     move.l    curtsk,a0
  60.     move.l    tskpri,$b8(a0)
  61.     move.l    ($4).w,a6
  62.     jsr    -$84(a6)        ;forbid
  63.  
  64.     move.l    doslib,a1
  65.     move.l    (4).w,a6
  66.     jsr    -414(a6)        ;closelib
  67.  
  68.     moveq.l    #0,d0
  69.     rts
  70.     
  71. label5
  72.     move.l    (4).w,a6        ;workbench gedoe
  73.     move.b    530(a6),ntscmode    ;50/60 hertz halen
  74.  
  75.     cmp.b    #50,ntscmode        ;ntsc ?
  76.     beq.s    str.ntsc
  77.     move.l    #vew_hgt-56,hogscr    ;set NTSC screen hight
  78. str.ntsc
  79.  
  80.     move.l    (4).w,a6        ;68030 cache off 
  81.     jsr    -120(a6)
  82.  
  83.     btst.b    #1,297(a6)
  84.     beq.s    str.nfc
  85.     lea.l    str.ft,a5
  86.     jsr    -30(a6)
  87. str.nfc
  88.     jsr    -126(a6)
  89.     bra.s    str.fc
  90.     
  91. str.ft
  92.     dc.w    $4e7a,2
  93.     bclr    #0,d0
  94.     bset    #13,d0
  95.     dc.w    $4e7b,2
  96.     rte
  97. str.fc
  98.  
  99.     lea    cprjmp,a2        ;copjmp zetten !
  100.     move.l    #cprbck-8,d0
  101.     move.w    d0,6(a2)
  102.     swap    d0
  103.     move.w    d0,2(a2)
  104.  
  105.     lea    cprbck-8,a2        ;copstr zetten !
  106.     move.l    #cpr,d0
  107.     move.w    d0,6(a2)
  108.     swap    d0
  109.     move.w    d0,2(a2)
  110.  
  111.     bsr    cprsprrem        ;sprites legen
  112.  
  113.     lea    gfxnam,a1        ;graphics lib openen
  114.     move.l    (4).w,a6
  115.     jsr    -408(a6)        ;openlib
  116.     move.l    d0,a6
  117.     move.l    d0,gfxlib
  118.     move.l    38(a6),oldcprlist
  119.  
  120.     bset    #1,$bfe001
  121.     bsr    copbuf            ;copper vullen
  122.  
  123.     bsr    sysoff
  124.  
  125. gadrun
  126.     btst    #6,($bfe001).l
  127.     bne    gadrun
  128.  
  129. scrend
  130. scrend.play
  131.     bsr    syson
  132.  
  133.     move.l    gfxlib,a1
  134.     move.l    (4).w,a6
  135.     jsr    -414(a6)        ;closelib
  136.  
  137. scrend.qb
  138.     moveq.l    #0,d0    
  139.     rts
  140.     
  141.     ;vertical blank interrupt, no blits.
  142.     ;handles counters,interlace,sprite
  143.     ;level 3
  144.  
  145. intvb
  146.     bra.s    intvb.cnt
  147.     dc.l    'VIDU'
  148.     dc.l    'LOOP'
  149. intvb.cnt
  150.     movem.l    d0-d7/a0-a6,-(sp)
  151.     lea    ($dff000).l,a6
  152.  
  153.     move.w    $01e(a6),d0
  154.     btst    #5,d0            ;vblank ?
  155.     bne.s    intvb.vb
  156.  
  157.     bra.s    intcop.end
  158.  
  159. intvb.vb
  160.     bsr    grap
  161.     bsr    palctr            ;palette zetten
  162.     bsr.s    copbuf            ;copper vullen
  163.     
  164. intvb.end
  165.     move.w    #$0020,$09c(a6)    ;vb bit wissen
  166.     movem.l    (sp)+,d0-d7/a0-a6    ;multitask uit, shit !
  167.     rte
  168.  
  169. intcop.end
  170.     movem.l    (sp)+,d0-d7/a0-a6
  171.     move.l    intvbold,-(sp)
  172.     rts
  173.  
  174.     ;transmission buffer empty routine, BLIT !
  175.     ;handles routines,animations
  176.     
  177. inttbe                    ;tbe interrupt
  178.     movem.l    d0-d7/a0-a6,-(sp)
  179.     lea    ($dff000).l,a6
  180.  
  181.     move.w    $01e(a6),d0
  182.     btst    #0,d0            ;no tbe ?
  183.     beq.s    intdskblk
  184.  
  185.  
  186.     btst    #6,($bfe001).l        ;muis ingedrukt ?
  187.     beq.s    inttbe.cop
  188.     btst    #2,($dff016).l
  189.     beq.s    inttbe.cop
  190.  
  191.     ifd    debug
  192.     move.w    #$700,$dff180
  193.     endc
  194.     
  195.     bsr    rotply            ;routineplayer BLIT !
  196.     bsr.s    copbuf            ;copper vullen
  197.  
  198.     ifd    debug
  199.     move.w    #$070,$dff180
  200.     endc
  201.     
  202. inttbe.cop
  203.  
  204. inttbe.end
  205.     move.w    #$0001,$09c(a6)
  206.     movem.l    (sp)+,d0-d7/a0-a6
  207.     rte
  208.  
  209. intdskblk
  210.     move.w    #$0001,$09c(a6)        ;be sure for no tbe handling
  211.     movem.l    (sp)+,d0-d7/a0-a6
  212.     move.l    inttbeold,-(sp)
  213.     rts
  214.  
  215.  
  216.     ;moves the copperbuffer to the copperlist
  217.     ;sort of double buffering
  218.     
  219. copbuf
  220.     movem.l    d0-d7/a0-a6,-(sp)
  221.  
  222.     lea    ($dff000).l,a6
  223.  
  224. copbuf.novb                ;copperchange overslaan
  225.     moveq.l    #0,d0
  226.     move.b    $005(a6),d0
  227.     lsl.w    #8,d0
  228.     moveq.l    #0,d1
  229.     move.b    $006(a6),d1
  230.     add.w    d1,d0
  231.  
  232.     cmp.w    #$4,d0
  233.     blt    copbuf.novb
  234.  
  235.     cmp.b    #50,ntscmode
  236.     beq.s    copbuf.pal
  237.     cmp.w    #$133-56-8,d0        ;ntsc grens
  238.     bge    copbuf.novb
  239.     bra.s    copbuf.cont
  240. copbuf.pal
  241.     cmp.w    #$133-8,d0        ;pal grens
  242.     bge    copbuf.novb
  243. copbuf.cont
  244.  
  245.     lea    gra.s,a0        ;buffer copieren
  246.     lea    cprbuf,a1
  247.  
  248.     move.w    00*4+2(a0),00*4+2(a1)
  249.     move.w    01*4+2(a0),01*4+2(a1)
  250.     move.w    02*4+2(a0),02*4+2(a1)
  251.     move.w    03*4+2(a0),03*4+2(a1)
  252.     move.w    04*4+2(a0),04*4+2(a1)
  253.     move.w    05*4+2(a0),05*4+2(a1)
  254.     move.w    06*4+2(a0),06*4+2(a1)
  255.     move.w    07*4+2(a0),07*4+2(a1)
  256.     move.w    08*4+2(a0),08*4+2(a1)
  257.     move.w    09*4+2(a0),09*4+2(a1)
  258.  
  259.     move.w    10*4+2(a0),10*4+2(a1)
  260.     move.w    11*4+2(a0),11*4+2(a1)
  261.     move.w    12*4+2(a0),12*4+2(a1)
  262.     move.w    13*4+2(a0),13*4+2(a1)
  263.     move.w    14*4+2(a0),14*4+2(a1)
  264.     move.w    15*4+2(a0),15*4+2(a1)
  265.     move.w    16*4+2(a0),16*4+2(a1)
  266.     move.w    17*4+2(a0),17*4+2(a1)
  267.     move.w    18*4+2(a0),18*4+2(a1)
  268.     move.w    19*4+2(a0),19*4+2(a1)
  269.  
  270.     move.w    20*4+2(a0),20*4+2(a1)
  271.     move.w    21*4+2(a0),21*4+2(a1)
  272.     move.w    22*4+2(a0),22*4+2(a1)
  273.     move.w    23*4+2(a0),23*4+2(a1)
  274.     move.w    24*4+2(a0),24*4+2(a1)
  275.     move.w    25*4+2(a0),25*4+2(a1)
  276.     move.w    26*4+2(a0),26*4+2(a1)
  277.     move.w    27*4+2(a0),27*4+2(a1)
  278.     move.w    28*4+2(a0),28*4+2(a1)
  279.     move.w    29*4+2(a0),29*4+2(a1)
  280.  
  281.     move.w    30*4+2(a0),30*4+2(a1)
  282.     move.w    31*4+2(a0),31*4+2(a1)
  283.     move.w    32*4+2(a0),32*4+2(a1)
  284.     move.w    33*4+2(a0),33*4+2(a1)
  285.     move.w    34*4+2(a0),34*4+2(a1)
  286.     move.w    35*4+2(a0),35*4+2(a1)
  287.     move.w    36*4+2(a0),36*4+2(a1)
  288.     move.w    37*4+2(a0),37*4+2(a1)
  289.     move.w    38*4+2(a0),38*4+2(a1)
  290.     move.w    39*4+2(a0),39*4+2(a1)
  291.  
  292.     move.w    40*4+2(a0),40*4+2(a1)
  293.     move.w    41*4+2(a0),41*4+2(a1)
  294.     move.w    42*4+2(a0),42*4+2(a1)
  295.     move.w    43*4+2(a0),43*4+2(a1)
  296.     move.w    44*4+2(a0),44*4+2(a1)
  297.     move.w    45*4+2(a0),45*4+2(a1)
  298.     move.w    46*4+2(a0),46*4+2(a1)
  299.     move.w    47*4+2(a0),47*4+2(a1)
  300.     move.w    48*4+2(a0),48*4+2(a1)
  301.     move.w    49*4+2(a0),49*4+2(a1)
  302.  
  303.     move.w    50*4+2(a0),50*4+2(a1)
  304.     move.w    51*4+2(a0),51*4+2(a1)
  305.     move.w    52*4+2(a0),52*4+2(a1)
  306.     move.w    53*4+2(a0),53*4+2(a1)
  307.     move.w    54*4+2(a0),54*4+2(a1)
  308.  
  309. copbuf.end
  310.     movem.l    (sp)+,d0-d7/a0-a6
  311.     rts
  312.  
  313.     ;goes back to the workbench
  314.     
  315. syson
  316.     movem.l    d0-d7/a0-a6,-(sp)
  317.  
  318.     move.w    #$0001,$dff09a        ;tbeint uit
  319.     move.l    intvbold,($6c).w
  320.     move.l    inttbeold,($64).w
  321.  
  322.     move.l    4,a6
  323.     jsr    -138(a6)        ;permit
  324.  
  325.     move.l    gfxlib,a6
  326.     jsr    -462(a6)        ;disownblitter
  327.  
  328.     move.l    wbview,a1
  329.     move.l    gfxlib,a6
  330.     jsr    _LVOLoadView(a6)     ; Fix view
  331.     jsr    _LVOWaitTOF(a6)
  332.     jsr    _LVOWaitTOF(a6)         ; wait for LoadView()
  333.  
  334. syson.ras
  335.     cmp.b    #$c0,$dff006        ;prevent copperjump
  336.     bne    syson.ras
  337.  
  338.     move.l    gfxlib,a6
  339.     move.l    gb_copinit(a6),$dff080     ; Kick it into life
  340.  
  341.     movem.l    (sp)+,d0-d7/a0-a6
  342.     rts
  343.     
  344.     ;goes back to the gadgetscreen
  345.     
  346. sysoff
  347.     movem.l    d0-d7/a0-a6,-(sp)
  348.      
  349.     move.l    gfxlib,a6
  350.     move.l    gb_ActiView(a6),wbview    ;current view
  351.     sub.l    a1,a1            ; clear a1
  352.     jsr     _LVOLoadView(a6)     ; Flush View to nothing
  353.     jsr    _LVOWaitTOF(a6)     ; Wait once
  354.     jsr    _LVOWaitTOF(a6)     ; Wait again.
  355.  
  356.     move.l    gfxlib,a6
  357.     jsr    -456(a6)        ;ownblitter
  358.  
  359.     move.l    4,a6
  360.     jsr    -132(a6)        ;forbid
  361.         
  362.     move.l    ($6c).w,intvbold
  363.     move.l    #intvb,($6c).w
  364.     move.l    ($64).w,inttbeold
  365.     move.l    #inttbe,($64).w
  366.     move.w    #$8001,$dff09a        ;tbeint aan
  367.     bsr    gracpr            ;reset copper
  368.     bsr    copbuf            ;copy copper
  369.     move.l    #cpr,$dff080
  370.  
  371.     movem.l    (sp)+,d0-d7/a0-a6
  372.     rts
  373.     
  374. cprsprrem
  375.     movem.l    d0-d7/a0-a6,-(sp)
  376.     lea    cprspr,a0
  377.     move.l    #sprdat,d0
  378.     move.w    #7,d1
  379. cprsprrem.a
  380.     move.w    d0,3*2(a0)
  381.     swap    d0
  382.     move.w    d0,1*2(a0)
  383.     swap    d0
  384.     add.l    #8,a0
  385.     dbra    d1,cprsprrem.a
  386.     movem.l    (sp)+,d0-d7/a0-a6
  387.     rts
  388.  
  389. varset                    ;variablen neerzetten
  390.     movem.l    d0-d7/a0-a6,-(sp)
  391.     move.l    #var,a0
  392.  
  393.     move.l    #cprbck,var_cprbck(a0)
  394.     move.l    gfxlib,var__GfxBase(a0)
  395.     move.b    ntscmode,var_ntsc(a0)
  396.  
  397.     move.l    curpic1,var_pic1(a0)    ;variabel
  398.     move.l    curpic2,var_pic2(a0)    ;variabel
  399.     move.w    anispd1,var_anispd1(a0)
  400.     move.w    anitel1,var_anitel1(a0)
  401.     movem.l    (sp)+,d0-d7/a0-a6
  402.     rts
  403.     
  404.     ;this routine handles all videotracker-routines
  405.  
  406. rotply    
  407.     movem.l    d0-d7/a0-a6,-(sp)
  408.  
  409.     moveq.l    #0,d0
  410.  
  411.     lea    currot1,a2        ;routine 1
  412.     move.w    rotinf1,d0        ;routine info
  413.     bsr.s    rotplyr
  414.  
  415. rotply.end
  416.     movem.l    (sp)+,d0-d7/a0-a6
  417.     rts
  418.  
  419.     ;this routine handles 1 routine, BLIT !
  420.     
  421. rotplyr
  422.     movem.l    d0-d7/a1-a6,-(sp)
  423.  
  424.     move.l    #rot,(a2)        ;routinestart address
  425.  
  426.     move.b    #50,ntscmode        ;ntsc/pal hz
  427.     clr.l    curpic2            ;background picture
  428.     move.w    #1,anispd1        ;animationspeed
  429.     clr.w    anitel1            ;animation position
  430.  
  431.     lea    var,a0            ;communication-table
  432.  
  433. ;    move.l    #rotinc,var_cols1(a0)    ;incbinfile !!!
  434.  
  435.     move.l    #routinemode,d0        ;routinemode !!!
  436.  
  437.     sub.l    a0,a0            ;picture info legen
  438.  
  439.     tst.l    (a2)            ;is er een routine ?
  440.     beq    rotplyr.end        ;interlace handling
  441.  
  442.     move.l    intdel,d2        ;delay
  443.     move.l    inttel,d1        ;teller
  444.     cmp.w    d2,d1
  445.     blt    rotplyr.end
  446.     clr.l    inttel
  447.                 
  448.     bsr    varset            ;variabelen updaten
  449.  
  450.     move.l    (a2),a1            ;routine halen
  451.     move.l    #var,a0            ;variablen tabel
  452.  
  453.     movem.l    d3-d7/a1-a6,-(sp)
  454.     moveq.l    #0,d1            ;vars wissen
  455.     moveq.l    #0,d2
  456.     moveq.l    #0,d3
  457.     moveq.l    #0,d4
  458.     moveq.l    #0,d5
  459.     moveq.l    #0,d6
  460.     moveq.l    #0,d7
  461.     sub.l    a2,a2
  462.     sub.l    a3,a3
  463.     sub.l    a4,a4
  464.     sub.l    a5,a5
  465.  
  466.     jsr    4(a1)            ;routine afwerken
  467.     movem.l    (sp)+,d3-d7/a1-a6
  468.  
  469.     ;Routine:
  470.     ;
  471.     ;Input:
  472.     ;a0=variabelentabel
  473.     ;d0=routinemode
  474.     ;
  475.     ;Output:
  476.     ;a0=picture
  477.     ;d1=copperlist
  478.     ;d2=interruptdelay        (NOT used till now)
  479.     
  480.     move.w    #$0020,$dff09a        ;vb off !
  481.  
  482.     move.l    d2,intdel        ;delay
  483.  
  484.     lea    cprjmp,a3
  485.     move.l    #cprbck-8,d0
  486.  
  487.     cmp.l    (a2),a1            ;routine ondertussen gewipt ?
  488.     bne.s    rotplyr.nocop
  489.     tst.l    d1            ;copperlist ?
  490.     beq.s    rotplyr.nocop
  491.     move.l    d1,d0
  492. rotplyr.nocop
  493.     move.w    d0,6(a3)
  494.     swap    d0
  495.     move.w    d0,2(a3)
  496.  
  497.     cmp.l    #0,a0            ;picture ?
  498.     beq.s    rotplyr.endvb
  499.  
  500.     move.l    a0,curpic1        ;current picture (cycle)
  501.     move.l    a0,curpal1        ;current palette
  502.  
  503.     tst.b    rotdpl            ;plane is geleverd
  504.     beq.s    rotplyr.set
  505.     clr.b    rotdpl
  506.     clr.l    cycdel1            ;cycle info wissen
  507.     clr.l    4+cycdel1
  508.     clr.l    curfrm1            ;curfrm1, altijd planes zetten
  509. rotplyr.set
  510.     clr.b    dplctr
  511.     bsr.s    grap
  512.     bsr    grac            ;colorset
  513. rotplyr.endvb
  514.     move.w    #$8020,$dff09a
  515. rotplyr.end
  516.     movem.l    (sp)+,d0-d7/a1-a6
  517.     rts
  518.  
  519.     ;removes possible routine-coppers
  520.     
  521. gracpr
  522.     movem.l    d0-d7/a0-a6,-(sp)
  523.     lea    cprjmp,a3
  524.     move.l    #cprbck-8,d0        ;copperlist resetten
  525.     move.w    d0,6(a3)
  526.     swap    d0
  527.     move.w    d0,2(a3)
  528.     movem.l    (sp)+,d0-d7/a0-a6
  529.     rts
  530.  
  531.     ;picture-to-copper routine, communicates with the
  532.     ;anim-player
  533.     
  534. grap                    ;d7=anim
  535.     movem.l    d0-d7/a0-a6,-(sp)
  536.  
  537.     clr.l    d7
  538.     
  539.     tst.l    curpic1            ;current picture ?
  540.     beq    grap.end
  541.  
  542.     move.l    curpic1,a2        ;normal pic halen
  543.  
  544.     lea    gracprscr,a1        ;window neerzetten
  545.     move.l    hogscr,d1
  546.  
  547.     move.w    pic_hgt(a2),d3        ;pic hoogte
  548.     move.w    pic_vew(a2),d5
  549.     btst    #2,d5            ;interlace ?
  550.     beq.s    grap.nohi4
  551.     lsr.w    #1,d3            ;/2
  552. grap.nohi4
  553.     cmp.w    d3,d1
  554.     bge.s    grap.hog
  555.     move.w    d1,d3
  556. grap.hog
  557.     sub.w    d3,d1
  558.     lsr.w    #1,d1
  559.     add.w    #win_str,d1
  560.     move.w    d1,d2
  561.     add.w    d3,d2
  562.  
  563.  
  564.     move.b    d1,2(a1)        ;y start
  565.     move.b    d2,6(a1)        ;y end
  566.  
  567.     move.w    pic_wid(a2),d4        ;pic breedte in bytes
  568.     lsl.l    #3,d4
  569.  
  570.     move.l    #vew_wid*8,d0
  571.     move.l    #0,d1
  572.     move.l    #$71,d6
  573.  
  574.     move.w    pic_vew(a2),d5
  575.     btst    #15,d5            ;hires ?
  576.     beq.s    grap.nohi2
  577.  
  578.     move.l    #(vew_wid-4)*8*2,d0
  579.     move.l    #1,d1
  580.     move.l    #$81,d6
  581.  
  582.     cmp.w    #80,pic_wid(a2)        ;overscan ?
  583.     ble.s    grap.nohi2
  584.     move.l    #(vew_wid)*8*2,d0
  585.     move.l    #$61,d6
  586.  
  587. grap.nohi2    
  588.     btst    #6,d5            ;super hires ?
  589.     beq.s    grap.noshi2
  590.  
  591.     move.l    #(vew_wid-4)*8*4,d0
  592.     move.l    #2,d1
  593.     move.l    #$81,d6
  594.  
  595.     cmp.w    #80*2,pic_wid(a2)    ;overscan ?
  596.     ble.s    grap.noshi2
  597.     move.l    #(vew_wid)*8*4,d0
  598.     move.l    #$61,d6
  599.  
  600. grap.noshi2    
  601.  
  602.     clr.w    d5
  603.     cmp.w    d0,d4            ;breeder dan scherm ?
  604.     ble.s    grap.c
  605.     move.w    d4,d5
  606.     move.w    d0,d4
  607.     sub.w    d0,d5            ;modulo
  608.     lsr.w    #3,d5            ;/8
  609. grap.c
  610.     lsr.w    d1,d0
  611.     lsr.w    d1,d4
  612.  
  613.     move.w    d0,d2
  614.     sub.w    d4,d2
  615.     lsr.w    #1,d2            ;/2
  616.  
  617.     add.w    d6,d2
  618.     move.b    d2,3(a1)        ;x start
  619.     move.w    d2,d3            ;d3 bewaren !
  620.  
  621.     add.w    d4,d2            ;d4 bewaren !
  622.     move.b    d2,7(a1)        ;x end
  623.     
  624.     move.w    pic_vew(a2),d6
  625.     btst    #15,d6            ;hires ?
  626.     beq.s    grap.nohi5    
  627.     add.l    d4,d4            ;*2
  628. grap.nohi5
  629.     btst    #6,d6            ;super hires ?
  630.     beq.s    grap.noshi5    
  631.     add.l    d4,d4            ;*4
  632. grap.noshi5
  633.  
  634.     move.l    d7,-(sp)
  635.     move.w    pic_vew(a2),d6
  636.     move.l    #17,d0
  637.     move.l    #1,d1
  638.     move.l    #3,d7
  639.  
  640.     btst    #15,d6            ;hires ?
  641.     beq.s    grap.nohi3    
  642.     move.l    #9,d0
  643.     move.l    #2,d1
  644.     move.l    #2,d7
  645. grap.nohi3
  646.     btst    #6,d6            ;super hires ?
  647.     beq.s    grap.noshi3    
  648.     move.l    #9,d0
  649.     move.l    #2,d1
  650.     move.l    #1,d7
  651. grap.noshi3
  652.     sub.w    d0,d3
  653.     lsr.w    #1,d3
  654.     move.w    d3,10(a1)        ;ddfstrt
  655.     
  656.     move.w    d4,d2            ;pic breedte in pixels
  657.     lsr.w    #4,d2            ;/16
  658.     sub.w    d1,d2            ;-1
  659.  
  660.     lsl.w    d7,d2            ;*8
  661.     add.w    d2,d3
  662.     move.w    d3,14(a1)        ;ddfstop
  663.     move.l    (sp)+,d7
  664.     
  665.     lea    pic_raw(a2),a0
  666.  
  667.     moveq.l    #0,d2
  668.     move.w    pic_dpt(a2),d2
  669.     sub.l    #1,d2
  670.     muls    pic_wid(a2),d2
  671.     add.w    d2,d5
  672.  
  673.     move.w    pic_vew(a2),d2        ;viewmode add
  674.     btst    #2,d2
  675.     beq.s    grap.nolace4
  676.  
  677.     moveq.l    #0,d2
  678.     move.w    pic_dpt(a2),d2
  679.     muls    pic_wid(a2),d2
  680.     add.w    d2,d5            ;interlace gedoe
  681. grap.nolace4
  682.  
  683.     lea    gracprbpl,a4        ;iffpln neerzetten
  684.     lea    gracprpln,a0        ;iffpln neerzetten
  685.     moveq.l    #0,d2
  686.     move.w    pic_dpt(a2),d2        ;plnnummer 1 halen
  687.     move.l    #8,d6            ;copper step !
  688.  
  689.     tst.l    curpic2            ;2de picture ?
  690.     bne.s    grap.pic2
  691. grap.nopic2
  692.     move.w    d5,34(a1)        ;modulo oneven zetten
  693.     bra    grap.nodpl
  694. grap.pic2
  695.     move.l    curpic2,a3        ;oneven plane
  696.     move.l    currot2,a5        ;oneven plane
  697.     clr.l    curpic2            ;mischien niet goed
  698.     clr.l    curpal2            ;mischien niet goed
  699.     clr.l    currot2            ;mischien niet goed
  700.  
  701.     cmp.l    curpic1,a3        ;picture hetzelfde ?
  702.     beq    grap.nopic2
  703.     
  704.     cmp.l    #0,currot1        ;routine ?    
  705.     beq.s    grap.norot
  706.     cmp.l    currot1,a5        ;routine hetzelfde ?
  707.     beq    grap.nopic2
  708. grap.norot
  709.  
  710.     cmp.b    #3,d2            ;> 8 kleuren ?
  711.     bgt    grap.nopic2
  712.     move.w    pic_dpt(a3),d3        ;plnnummer 2 halen
  713.     cmp.b    d2,d3            ;gelijke plnummers ?
  714.     bne    grap.nopic2
  715.     move.w    pic_vew(a2),d1
  716.     cmp.w    pic_vew(a3),d1        ;view gelijk ?
  717.     bne    grap.nopic2
  718.  
  719.     move.w    pic_vew(a2),d1        ;groter dan view test
  720.     btst    #6,d1            ;super hires ?
  721.     beq.s    grap.nohi2a
  722.     move.l    #vew_wid*4,d1
  723.     bra.s    grap.nohi2b
  724. grap.nohi2a
  725.     btst    #15,d1            ;hires ?
  726.     beq.s    grap.noshi2a
  727.     move.l    #vew_wid*2,d1
  728.     bra.s    grap.nohi2b
  729. grap.noshi2a
  730.     move.l    #vew_wid,d1
  731. grap.nohi2b
  732.     cmp.w    pic_wid(a2),d1        ;breder dan view ?
  733.     bgt.s    grap.small
  734.     cmp.w    pic_wid(a3),d1        ;breder dan view ?
  735.     bgt.s    grap.small
  736.  
  737.     move.w    pic_vew(a2),d1
  738.     btst    #2,d1
  739.     beq.s    grap.nolace8a
  740.     move.l    hogscr,d1
  741.     add.l    d1,d1
  742.     bra.s    grap.nolace8b
  743. grap.nolace8a
  744.     move.l    hogscr,d1
  745. grap.nolace8b
  746.     cmp.w    pic_hgt(a2),d1        ;hoger dan view ?
  747.     bgt.s    grap.small
  748.     cmp.w    pic_hgt(a3),d1        ;hoger dan view ?
  749.     bgt.s    grap.small
  750.     bra.s    grap.big
  751.  
  752. grap.small
  753.     move.w    pic_hgt(a2),d1        ;wid+hgt<vew
  754.     cmp.w    pic_hgt(a3),d1        ;hoogte gelijk ?
  755.     bne    grap.nopic2
  756.     move.w    pic_wid(a2),d1
  757.     cmp.w    pic_wid(a3),d1        ;breedte gelijk ?
  758.     bne    grap.nopic2
  759.  
  760. grap.big
  761.     move.l    a3,curpic2
  762.     move.l    a3,curpal2
  763.     move.l    a5,currot2
  764.  
  765.     tst.b    dplctr            ;double playfield al gezet ?
  766.     beq.s    grap.nocop
  767.  
  768.     move.w    30(a1),34(a1)        ;modulo copieren
  769.  
  770.     move.w    2(a4),d1        ;bplcon0
  771.     btst    #10,d1            ;al double playfield ?
  772.     beq.s    grap.ta
  773.  
  774.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  775.     move.w    6(a0),14(a0)
  776.  
  777.     move.w    18(a0),26(a0)        ;plane 2>3 copieren
  778.     move.w    22(a0),30(a0)
  779.  
  780.     move.w    34(a0),42(a0)        ;plane 4>5 copieren
  781.     move.w    38(a0),46(a0)
  782.  
  783.     bra.s    grap.tb
  784. grap.ta
  785.     move.w    18(a0),42(a0)        ;plane 2>5 copieren
  786.     move.w    22(a0),46(a0)
  787.  
  788.     move.w    10(a0),26(a0)        ;plane 1>3 copieren
  789.     move.w    14(a0),30(a0)
  790.  
  791.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  792.     move.w    6(a0),14(a0)
  793.  
  794. grap.tb
  795.     move.l    #palette,a3        ;palette copieren
  796.  
  797.     move.w    #8-1,d1
  798. grap.pal
  799.     move.w    (a3)+,14(a3)
  800.     dbra    d1,grap.pal
  801.  
  802. grap.nocop
  803.     add.w    d3,d2
  804.     lsl.w    #8,d2
  805.     lsl.w    #4,d2
  806.     or.w    #$400,d2
  807.     move.w    d2,2(a4)        ;bplcon0
  808.  
  809.     movem.l    d0-d7/a0-a6,-(sp)
  810.  
  811.     move.l    curpic,a2        ;animpic ?
  812.     move.l    curfrm,d7
  813.     cmp.l    #0,a2
  814.     bne.s    grap.noanipic
  815.  
  816.     move.l    curpic2,a2        ;normal pic ?
  817.     move.l    curfrm2,d7
  818.     cmp.l    #0,a2
  819.     beq.s    grap.nodplpic
  820.  
  821. grap.noanipic
  822.     add.l    d6,a0
  823.     add.w    d6,d6
  824.     bsr.s    grappln            ;a2,d6,d7,d0
  825. grap.nodplpic
  826.     movem.l    (sp)+,d0-d7/a0-a6
  827.     add.w    d6,d6
  828.     bra.s    grap.nodpla
  829.  
  830.  
  831. grap.nodpl                ;geen double playfield
  832.     lsl.w    #8,d2
  833.     lsl.w    #4,d2
  834.     move.w    d2,2(a4)        ;bplcon0
  835.  
  836. grap.nodpla
  837.     move.w    d5,30(a1)        ;modulo even
  838.  
  839.     moveq.l    #0,d3
  840.     add.w    pic_vew(a2),d3        ;viewmode add
  841.     moveq.l    #0,d2
  842.     move.w    2(a4),d2
  843.     or.l    d3,d2
  844.     or.l    #$300,d2        ;genlock info
  845.     move.w    d2,2(a4)
  846.     
  847.     bsr.s    grappln            ;a2,d6,d7,d0
  848.  
  849. grap.end
  850.     
  851.     movem.l    (sp)+,d0-d7/a0-a6
  852.     rts
  853.         
  854.  
  855.     ;sets on of the 2 possible pictures to the copper
  856.     ;handles interlace
  857.  
  858.     ;d7=framenummer
  859.     ;d6=copperliststap
  860.     ;d0=raw planes positie
  861.     ;a2=current picture
  862. grappln                    ;planes invullen 
  863.     movem.l    d0-d7/a0-a6,-(sp)
  864.  
  865.     lea    pic_raw(a2),a1
  866.     move.l    a1,d0            ;raw planes
  867.     
  868.     moveq.l    #0,d2            ;x*y
  869.     move.w    pic_wid(a2),d2
  870.     lsr.l    #1,d2            ;/2
  871.     moveq.l    #0,d3
  872.     move.w    pic_hgt(a2),d3
  873.     muls    d3,d2
  874.     
  875.     move.l    d2,d4
  876.     add.l    d2,d2
  877.  
  878.     move.w    pic_dpt(a2),d3
  879.     muls    d3,d4            ;hele picture size
  880.     muls    d7,d4            ;frame*size d7 !
  881.  
  882.     add.l    d4,d4
  883.  
  884.     add.l    d4,d0
  885.  
  886.     move.l    #vew_wid,d5        ;max x view
  887.     move.l    hogscr,d4        ;max y view
  888.     move.w    pic_vew(a2),d1        ;viewmode add
  889.     btst    #2,d1
  890.     beq.s    grappln.nolace
  891.     add.l    d4,d4            ;max y view
  892. grappln.nolace
  893.     btst    #15,d1            ;hires ?
  894.     beq.s    grappln.nohi
  895.     move.l    #vew_wid*2,d5        ;max x view
  896. grappln.nohi
  897.     btst    #6,d1            ;super hires ?
  898.     beq.s    grappln.noshi
  899.     move.l    #vew_wid*4,d5        ;max x view
  900. grappln.noshi
  901.  
  902.     moveq.l    #0,d3            ;scherm centreren
  903.     move.w    pic_wid(a2),d3        ;pic breedte in bytes
  904.     cmp.w    d5,d3            ;breder dan scherm ?
  905.     ble.s    grappln.qa
  906.     sub.w    d5,d3            ;-scherm breedte
  907.     lsr.w    #2,d3            ;/4
  908.  
  909.     add.l    d3,d3
  910.  
  911.     add.l    d3,d0
  912. grappln.qa
  913.     move.w    pic_hgt(a2),d3        ;pic hoogte in bytes
  914.     cmp.w    d4,d3            ;hoger dan scherm ?
  915.     ble.s    grappln.qb
  916.     sub.w    d4,d3            ;-scherm breedte
  917.     lsr.w    #1,d3            ;/2
  918.     moveq.l    #0,d5
  919.     move.w    pic_wid(a2),d5        ;pic breedte in bytes
  920.     muls    pic_dpt(a2),d5
  921.     muls    d5,d3
  922.     add.l    d3,d0
  923. grappln.qb
  924.     moveq.l    #0,d2
  925.     move.w    pic_wid(a2),d2
  926.  
  927.     move.w    pic_vew(a2),d5        ;interlace flipping ?
  928.     btst    #2,d5
  929.     beq.s    grappln.nolac7b
  930.  
  931.     move.w    $04(a6),d5        ;even/oneven ?
  932.     btst    #15,d5
  933.     beq.s    grappln.nolac7b
  934.     
  935.     moveq.l    #0,d3
  936.     move.w    pic_wid(a2),d3
  937.     muls    pic_dpt(a2),d3
  938.     add.l    d3,d0
  939. grappln.nolac7b
  940.  
  941.     move.w    pic_dpt(a2),d1        ;plnnummer 1 halen
  942.     tst.w    d1            ;0 planes ?
  943.     beq.s    grappln.end
  944.     sub.w    #1,d1
  945. grappln.a
  946.     move.w    d0,3*2(a0)
  947.     swap    d0
  948.     move.w    d0,1*2(a0)
  949.     swap    d0
  950.     add.l    d6,a0            ;d6=copper step !
  951.     add.l    d2,d0
  952.     dbra    d1,grappln.a
  953. grappln.end
  954.     movem.l    (sp)+,d0-d7/a0-a6
  955.     rts
  956.  
  957.     ;sets palettes to copper
  958.     
  959. grac
  960.     movem.l    d0-d7/a0-a6,-(sp)
  961.  
  962.     lea    curpal1,a3        ;palette 1
  963.     move.l    #palette,a1
  964.     bsr.s    gracfrm
  965.  
  966.     lea    curpal2,a3        ;palette 2 (dpl)
  967.     move.l    #8*2+palette,a1
  968.     bsr.s    gracfrm
  969.     
  970.     bsr.s    palctr            ;palette-buffer to copper
  971. grac.end
  972.     movem.l    (sp)+,d0-d7/a0-a6
  973.     rts
  974.         
  975.     ;moves palette from picture to palette-buffer
  976.  
  977. gracfrm
  978.     movem.l    d0-d7/a0-a6,-(sp)
  979.     tst.l    (a3)            ;palette aanwezig ?
  980.     beq.s    gracfrm.end
  981.  
  982.     move.l    (a3),a2            ;current palette
  983.     
  984.     cmp.l    #'PALE',(a2)        ;palette ?
  985.     bne.s    gracfrm.pict
  986.     lea    6(a2),a0        ;palette
  987.     move.w    4(a2),d0        ;aantal kleuren
  988.     bra.s    gracfrm.col
  989. gracfrm.pict
  990.     cmp.l    #'ANIM',(a2)        ;animatie ?
  991.     bne.s    gracfrm.noanim
  992.  
  993.     moveq.l    #0,d1
  994.     move.w    pic_ani(a2),d1
  995.     bclr    #7,d1            ;behandelbit weghalen
  996.  
  997.     moveq.l    #0,d3
  998.     move.w    pic_wid(a2),d3
  999.     lsr.w    #1,d3            ;/2
  1000.     muls    pic_hgt(a2),d3
  1001.     muls    pic_dpt(a2),d3
  1002.  
  1003.     add.l    d3,d3
  1004.  
  1005.     add.l    #pic_raw,d3
  1006.     move.l    d3,d5
  1007.  
  1008.     btst    #0,d1
  1009.     bne.s    gracfrm.buf2
  1010.     moveq.l    #0,d5
  1011. gracfrm.buf2
  1012.     add.l    d5,a2
  1013. gracfrm.noanim
  1014.     lea    pic_pal(a2),a0        ;palette
  1015.     move.w    pic_palnum(a2),d0
  1016.  
  1017.     cmp.w    #32-1,d0        ;niet meer dan 32 kleuren
  1018.     ble    gracfrm.sub
  1019.     move.w    #32-1,d0
  1020. gracfrm.sub
  1021.  
  1022.     tst.w    d0            ;0 planes ?
  1023.     beq.s    gracfrm.end
  1024. gracfrm.col
  1025. gracfrm.fa
  1026.     move.w    (a0)+,(a1)+
  1027.     dbra    d0,gracfrm.fa
  1028. gracfrm.end
  1029.     movem.l    (sp)+,d0-d7/a0-a6
  1030.     rts
  1031.     
  1032.     ;handles colorcycling in the palette-buffer
  1033.     ;and copies palette-buffer to copper
  1034.  
  1035. palctr
  1036.     movem.l    d0-d7/a0-a6,-(sp)
  1037.  
  1038.     move.l    curpic1,a2        ;current raw
  1039.     cmp.l    #0,a2
  1040.     beq.s    palctr.qb
  1041.     lea    cycdel1,a3        ;cycle delays
  1042.     move.l    #palette,a4
  1043.     bsr    palcyc
  1044. palctr.qb
  1045.     move.l    curpic2,a2        ;current raw
  1046.     cmp.l    #0,a2
  1047.     beq.s    palctr.c
  1048.     lea    cycdel2,a3        ;cycle delays
  1049.     move.l    #8*2+palette,a4
  1050.     bsr    palcyc
  1051.  
  1052. palctr.c
  1053.     lea    gracprcol,a1
  1054.     move.l    #palette,a0
  1055.  
  1056.     move.w    00(a0),00*4+2(a1)
  1057.     move.w    02(a0),01*4+2(a1)
  1058.     move.w    04(a0),02*4+2(a1)
  1059.     move.w    06(a0),03*4+2(a1)
  1060.     move.w    08(a0),04*4+2(a1)
  1061.     move.w    10(a0),05*4+2(a1)
  1062.     move.w    12(a0),06*4+2(a1)
  1063.     move.w    14(a0),07*4+2(a1)
  1064.     move.w    16(a0),08*4+2(a1)
  1065.     move.w    18(a0),09*4+2(a1)
  1066.  
  1067.     move.w    20(a0),10*4+2(a1)
  1068.     move.w    22(a0),11*4+2(a1)
  1069.     move.w    24(a0),12*4+2(a1)
  1070.     move.w    26(a0),13*4+2(a1)
  1071.     move.w    28(a0),14*4+2(a1)
  1072.     move.w    30(a0),15*4+2(a1)
  1073.     move.w    32(a0),16*4+2(a1)
  1074.     move.w    34(a0),17*4+2(a1)
  1075.     move.w    36(a0),18*4+2(a1)
  1076.     move.w    38(a0),19*4+2(a1)
  1077.  
  1078.     move.w    40(a0),20*4+2(a1)
  1079.     move.w    42(a0),21*4+2(a1)
  1080.     move.w    44(a0),22*4+2(a1)
  1081.     move.w    46(a0),23*4+2(a1)
  1082.     move.w    48(a0),24*4+2(a1)
  1083.     move.w    50(a0),25*4+2(a1)
  1084.     move.w    52(a0),26*4+2(a1)
  1085.     move.w    54(a0),27*4+2(a1)
  1086.     move.w    56(a0),28*4+2(a1)
  1087.     move.w    58(a0),29*4+2(a1)
  1088.  
  1089.     move.w    60(a0),30*4+2(a1)
  1090.     move.w    62(a0),31*4+2(a1)
  1091.  
  1092.     movem.l    (sp)+,d0-d7/a0-a6
  1093.     rts
  1094.  
  1095.     ;colorcyclinghandling of a palette
  1096.  
  1097. palcyc
  1098.     movem.l    d0-d7/a0-a6,-(sp)
  1099.     move.w    #4-1,d7            ;4 cycles
  1100. palcyc.d
  1101.     tst.w    (a3)+            ;delay klaar ?
  1102.     bne.s    palcyc.c
  1103.     
  1104.     moveq.l    #0,d1
  1105.     move.b    pic_cycstr(a2),d1    ;start color
  1106.     lsl.b    #1,d1        ;*2
  1107.  
  1108.     moveq.l    #0,d2
  1109.     move.b    pic_cycend(a2),d2    ;end color
  1110.     lsl.b    #1,d2        ;*2
  1111.  
  1112.     moveq.l    #0,d3
  1113.     move.b    pic_cycadd(a2),d3    ;richting
  1114.  
  1115.     move.l    a4,a0            ;palette pointer
  1116.     move.l    a0,a1
  1117.     add.l    d1,a0            ;startcolor
  1118.     add.l    d2,a1            ;endcolor
  1119.     
  1120.     cmp.b    #1,d3            ;omhoog
  1121.     beq.s    palcyc.up
  1122.     cmp.b    #3,d3            ;omlaag
  1123.     beq.s    palcyc.down
  1124.     bra.s    palcyc.i
  1125.  
  1126. palcyc.up                ;kleuren copieren
  1127.     move.w    (a1),d4            ;laatst color bewaren
  1128. palcyc.f                ;kleuren copieren
  1129.     cmp.l    a0,a1
  1130.     beq.s    palcyc.fa
  1131.     move.w    -(a1),2(a1)
  1132.     bra    palcyc.f
  1133. palcyc.fa
  1134.     move.w    d4,(a1)
  1135.     bra.s    palcyc.g    
  1136.     
  1137. palcyc.down
  1138.     move.w    (a0),d4            ;laatst color bewaren
  1139. palcyc.h                ;kleuren copieren
  1140.     cmp.l    a0,a1
  1141.     beq.s    palcyc.ha
  1142.     move.w    2(a0),(a0)+
  1143.     bra    palcyc.h
  1144. palcyc.ha
  1145.     move.w    d4,(a1)
  1146.  
  1147. palcyc.g
  1148.     move.b    pic_cycspd(a2),-1(a3)    ;delay zetten
  1149.     bra.s    palcyc.i
  1150. palcyc.c
  1151.     sub.w    #1,-2(a3)        ;cycle delay aftellen
  1152. palcyc.i
  1153.     add.l    #4,a2            ;next cycle info
  1154.     dbra    d7,palcyc.d
  1155.  
  1156. palcyc.qb
  1157.     movem.l    (sp)+,d0-d7/a0-a6
  1158.     rts
  1159.  
  1160.  
  1161. ;    SECTION    variabelen,DATA_c
  1162.  
  1163.     cnop    0,2
  1164. curtsk        dc.l    0
  1165. tskpri        dc.l    0
  1166. duplok        dc.l    0
  1167. inttel        dc.l    0
  1168. intdel        dc.l    0
  1169.  
  1170. form        dc.l    0
  1171. ifffil        dc.l    0
  1172. intvbold    dc.l    0
  1173. inttbeold    dc.l    0
  1174. patpos        dc.l    0
  1175. gfxlib        dc.l    0
  1176. doslib        dc.l    0
  1177. wbview      dc.l    0
  1178. mt_data        dc.l    0
  1179. memvid        dc.l    0
  1180. oldcprlist    dc.l    0
  1181. hogscr        dc.l    vew_hgt
  1182.  
  1183. inspos        dc.l    -1
  1184. anispd1        dc.w    1    ;nooit op 0 !
  1185. anispd2        dc.w    1
  1186.  
  1187.         cnop    0,2
  1188. varclr.s            ;start wissen
  1189. oldrot        dc.l    0
  1190. curpic        dc.l    0
  1191. curfrm        dc.l    0
  1192. cycdel1        ds.w    4
  1193. cycdel2        ds.w    4
  1194.  
  1195. rotinf1        dc.w    0
  1196. rotinf2        dc.w    0
  1197.  
  1198. effspd        dc.w    0
  1199. efflop        dc.b    0
  1200. anilop1        dc.b    0
  1201. anilop2        dc.b    0
  1202. anipal1        dc.b    0
  1203. anipal2        dc.b    0
  1204. rotdpl        dc.b    1
  1205. dplctr        dc.b    0
  1206.         cnop    0,2
  1207.  
  1208. insdat        ds.l    4
  1209. inspri        dc.l    0
  1210. instel        dc.w    0
  1211.  
  1212. cureff        dc.l    0
  1213. efftel        dc.w    0
  1214.  
  1215. curpal1        dc.l    0
  1216. curpal2        dc.l    0
  1217. currot1        dc.l    0
  1218. currot2        dc.l    0
  1219. curpic1        dc.l    0
  1220. curpic2        dc.l    0
  1221. anitel1        dc.w    0
  1222. anitel2        dc.w    0
  1223. curfrm1        dc.l    0
  1224. curfrm2        dc.l    0
  1225. oldfrm1        dc.l    0
  1226. oldfrm2        dc.l    0
  1227.  
  1228. varclr.e
  1229.         dc.l    0            ;wisruimte
  1230.     
  1231. varclr.ql    equ    varclr.e-varclr.s    ;wislengte
  1232.     
  1233. ;ownblit    dc.b    0
  1234. ntscmode    dc.b    0
  1235. end        dc.b    0
  1236.  
  1237. pronam    dc.b    'VideoTracker',0
  1238.     cnop    0,2
  1239. dosnam    dc.b    'dos.library',0
  1240.     cnop    0,4
  1241. gfxnam    dc.b    'graphics.library',0
  1242.     cnop    0,4
  1243.     
  1244.     cnop    0,4
  1245. gra.s
  1246. gracprscr
  1247.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1248. gracprbpl
  1249.     dc.w    $100,$9000,$102,$0000,$104,$0020
  1250.     dc.w    $108,$0000,$10a,$0000
  1251. gracprpln
  1252.     dc.w    $e0,$0000,$e2,$0000
  1253.     dc.w    $e4,$0000,$e6,$0000
  1254.     dc.w    $e8,$0000,$ea,$0000
  1255.     dc.w    $ec,$0000,$ee,$0000
  1256.     dc.w    $f0,$0000,$f2,$0000
  1257.     dc.w    $f4,$0000,$f6,$0000
  1258. gracprcol
  1259.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1260.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1261.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1262.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1263. cprjmp
  1264.     dc.w    $080,0,$082,0
  1265. gra.e
  1266. gra.ql    equ    gra.e-gra.s        ;block lengte
  1267.  
  1268.  
  1269. cpr
  1270.     dc.w    $0001,$fffe
  1271.     dc.w    $09c,$8001        ;tbeint
  1272. cprspr
  1273.     dc.w    $120,$0000,$122,$0000
  1274.     dc.w    $124,$0000,$126,$0000
  1275.     dc.w    $128,$0000,$12a,$0000
  1276.     dc.w    $12c,$0000,$12e,$0000
  1277.     dc.w    $130,$0000,$132,$0000
  1278.     dc.w    $134,$0000,$136,$0000
  1279.     dc.w    $138,$0000,$13a,$0000
  1280.     dc.w    $13c,$0000,$13e,$0000
  1281.  
  1282. cprbuf
  1283.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1284.     dc.w    $100,$9000,$102,$0000,$104,$0020
  1285.     dc.w    $108,$0000,$10a,$0000
  1286.     dc.w    $e0,$0000,$e2,$0000
  1287.     dc.w    $e4,$0000,$e6,$0000
  1288.     dc.w    $e8,$0000,$ea,$0000
  1289.     dc.w    $ec,$0000,$ee,$0000
  1290.     dc.w    $f0,$0000,$f2,$0000
  1291.     dc.w    $f4,$0000,$f6,$0000
  1292.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1293.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1294.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1295.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1296.     dc.w    $080,0,$082,0
  1297. cprbuf.e
  1298.  
  1299.     dc.w    $088,$0000        ;copjmp2
  1300.     dc.w    $080,0,$082,0        ;moet achter cprbck blijven !
  1301. cprbck
  1302. sprdat
  1303.     dc.w    $ffff,$fffe
  1304.  
  1305.  
  1306. prf_pat    equ    7            ;pref sample size
  1307. prf_patnum    equ    128        ;aantal songpos's
  1308. prf_len    equ    ((prf_pat*prf_patnum)+1)
  1309.  
  1310. prf_pos    equ    0            ;eff position (teller)
  1311.  
  1312. prf_effs    equ    1        ;start effect (*prf_patnum)
  1313. prf_effe    equ    2        ;end effect   (*prf_patnum)
  1314. prf_pri    equ    3            ;priority     (*prf_patnum)
  1315. prf_spd    equ    4            ;eff speed    (*prf_patnum)
  1316. prf_ani    equ    5            ;ani speed    (*prf_patnum)
  1317. prf_roth    equ    6        ;routine info (*prf_patnum)
  1318. prf_rotl    equ    7        ;routine info (*prf_patnum)
  1319.  
  1320. eff_num    equ    256            ;aantal effects
  1321.  
  1322. pic_wid        equ    4        ;wide in bytes
  1323. pic_hgt        equ    6        ;hoogte
  1324. pic_dpt        equ    8        ;number planes
  1325. pic_ani        equ    10        ;aantal effes (anim)
  1326. pic_vew        equ    12        ;viewmode
  1327. pic_cycstr    equ    14        ;cycle start (*4)
  1328. pic_cycend    equ    15        ;cycle end (*4)
  1329. pic_cycspd    equ    16        ;cycle speed (*4)
  1330. pic_cycadd    equ    17        ;cycle add (*4)
  1331. pic_palnum    equ    30        ;aantal kleuren
  1332. pic_pal        equ    32        ;palette start
  1333. pic_palsiz    equ    256*2        ;vaste palette size
  1334. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  1335.  
  1336. fil_namlen    equ    24        ;naamlengte
  1337. fil_len    equ    (fil_namlen+4+4)    ;effect info length
  1338. fil_num    equ    2+eff_num        ;aantal files
  1339. fil_fil    equ    0            ;file naam 
  1340. fil_dir    equ    24            ;pointer naar directory
  1341. fil_pnt    equ    28            ;pointer naar meminfo
  1342.  
  1343. palette    ds.w    64    ;palette
  1344.  
  1345. var_len        equ    $300        ;lengte vartabel
  1346.  
  1347. var__GfxBase    equ    $000        ;graphics lib
  1348. var_pic1    equ    $004        ;current picture
  1349. var_anispd1    equ    $008        ;animspeed
  1350. var_anitel1    equ    $00c        ;animspeed
  1351. var_cprbck    equ    $010        ;copperback
  1352. var_bck        equ    $014        ;background
  1353. var_pic2    equ    $018        ;current picture
  1354. var_ntsc    equ    $01c        ;ntsc/pal frequence
  1355. var_lnd        equ    $020        ;landscape
  1356. var_txt1    equ    $040        ;text
  1357. var_txt16    equ    15*4+var_txt1
  1358. var_vec1    equ    $080        ;vectors
  1359. var_vec16    equ    15*4+var_vec1
  1360. var_fon1    equ    $0c0        ;fonts
  1361. var_fon16    equ    15*4+var_fon1
  1362. var_cols1    equ    $100        ;colorsets
  1363. var_cols16    equ    15*4+var_cols1
  1364. var_obj1    equ    $180        ;objects
  1365. var_obj16    equ    15*4+var_obj1
  1366.  
  1367.     cnop    0,2
  1368. var    ds.b    $300    ;variabelen voor routines
  1369.  
  1370.     
  1371. ;    SECTION    10,CODE_C
  1372.         endc
  1373.  
  1374. ; this is the routine-source
  1375. ;**********************************************************************
  1376.  
  1377.         ifnd    rout
  1378. pic_wid        equ    4        ;wide in bytes
  1379. pic_hgt        equ    6        ;hoogte
  1380. pic_dpt        equ    8        ;number planes
  1381. pic_ani        equ    10        ;aantal effes (anim)
  1382. pic_vew        equ    12        ;viewmode
  1383. pic_cycstr    equ    14        ;cycle start (*4)
  1384. pic_cycend    equ    15        ;cycle end (*4)
  1385. pic_cycspd    equ    16        ;cycle speed (*4)
  1386. pic_cycadd    equ    17        ;cycle add (*4)
  1387. pic_palnum    equ    30        ;aantal kleuren
  1388. pic_pal        equ    32        ;palette start
  1389. pic_palsiz    equ    256*2        ;vaste palette size
  1390. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  1391.  
  1392. var_len        equ    $300        ;lengte vartabel
  1393.  
  1394. var__GfxBase    equ    $000        ;graphics lib
  1395. var_pic1    equ    $004        ;current picture
  1396. var_anispd1    equ    $008        ;animspeed
  1397. var_anitel1    equ    $00c        ;animspeed
  1398. var_cprbck    equ    $010        ;copperback
  1399. var_bck        equ    $014        ;background
  1400. var_pic2    equ    $018        ;current picture
  1401. var_ntsc    equ    $01c        ;ntsc/pal frequence
  1402. var_lnd        equ    $020        ;landscape
  1403. var_txt1    equ    $040        ;text
  1404. var_txt16    equ    15*4+var_txt1
  1405. var_vec1    equ    $080        ;vectors
  1406. var_vec16    equ    15*4+var_vec1
  1407. var_fon1    equ    $0c0        ;fonts
  1408. var_fon16    equ    15*4+var_fon1
  1409. var_cols1    equ    $100        ;colorsets
  1410. var_cols16    equ    15*4+var_cols1
  1411. var_obj1    equ    $180        ;objects
  1412. var_obj16    equ    15*4+var_obj1
  1413.  
  1414. vew_wid    equ    44
  1415. vew_hgt    equ    290
  1416. win_hgt    equ    117
  1417. win_str    equ    $1a
  1418.         endc
  1419. ;    Input:
  1420. ;    a0=variabelen tabel
  1421. ;    d0=routinfo
  1422.  
  1423. ;    Output:
  1424. ;    a0=picture
  1425. ;    d1=copperlist
  1426.  
  1427.     SECTION    3,CODE_C
  1428.  
  1429. rot
  1430.     dc.l    'ROUT'
  1431.     movem.l    d2-d7/a1-a6,-(sp)
  1432.  
  1433.     lea    ($dff000).l,a6    ;hardware
  1434.     lea    rot,a5        ;prog base
  1435.  
  1436.     bclr    #15,d0        ;bit weghalen
  1437.     
  1438.     move.l    d0,d1
  1439.     divs    #4096,d1
  1440.     and.l    #$ffff,d1
  1441.     move.l    d1,rotcolfil-rot(a5)    ;fillup data
  1442.     muls    #4096,d1
  1443.     sub.l    d1,d0
  1444.  
  1445.     move.l    d0,d1
  1446.     divs    #2048,d1
  1447.     and.l    #$ffff,d1
  1448.     move.l    d1,rotcolrot3-rot(a5)    ;routinenummer 3
  1449.     muls    #2048,d1
  1450.     sub.l    d1,d0
  1451.     move.l    d0,d1
  1452.     divs    #256,d1
  1453.     and.l    #$ffff,d1
  1454.     move.l    d1,rotcolnum3-rot(a5)    ;kleurnummer 3
  1455.     muls    #256,d1
  1456.     sub.l    d1,d0
  1457.  
  1458.     move.l    d0,d1
  1459.     divs    #128,d1
  1460.     and.l    #$ffff,d1
  1461.     move.l    d1,rotcolrot2-rot(a5)    ;routinenummer 2
  1462.     muls    #128,d1
  1463.     sub.l    d1,d0
  1464.     move.l    d0,d1
  1465.     divs    #16,d1
  1466.     and.l    #$ffff,d1
  1467.     move.l    d1,rotcolnum2-rot(a5)    ;kleurnummer 2
  1468.     muls    #16,d1
  1469.     sub.l    d1,d0
  1470.  
  1471.     move.l    d0,d1
  1472.     divs    #8,d1
  1473.     and.l    #$ffff,d1
  1474.     move.l    d1,rotcolrot1-rot(a5)    ;routinenummer 1
  1475.     muls    #8,d1
  1476.     sub.l    d1,d0
  1477.     move.l    d0,rotcolnum1-rot(a5)    ;kleurnummer 1
  1478.  
  1479.     bsr    rotfil        ;copper vullen
  1480.  
  1481.     move.l    var_cprbck(a0),d1
  1482.     sub.l    #8,d1
  1483.  
  1484.     lea    rot.cop1,a1        ;copperjump adres zetten
  1485.     add.l    rot.buf-rot(a5),a1    ;double buffer
  1486.     move.w    d1,6(a1)
  1487.     swap    d1
  1488.     move.w    d1,2(a1)
  1489.  
  1490.     lea    rot.cop1,a1        ;splitscreen zetten
  1491.     add.l    rot.buf-rot(a5),a1    ;double buffer
  1492.     move.l    a1,a2
  1493.     add.l    #rot.cprbck1ntsc-rot.cop1,a2
  1494.     move.l    a1,a3
  1495.     add.l    #rot.cprend1ntsc-rot.cop1,a3
  1496.     move.l    a1,a4
  1497.     add.l    #rot.cprbck1-rot.cop1,a4
  1498.  
  1499.     cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1500.     bne    rot.ntsc
  1501.  
  1502.     move.l    #$8b29fffe,(a2)    ;reset ntsc split
  1503.     move.l    #$fb29fffe,(a3)    ;reset ntsc end
  1504.     add.l    #rot.cprbck1-rot.cop1,a1
  1505.     move.l    #$c329fffe,d0
  1506.     bra    rot.split
  1507. rot.ntsc
  1508.     move.l    #$c329fffe,(a4)    ;reset pal split
  1509.     move.l    #$00880000,(a3)    ;set ntsc end
  1510.     add.l    #rot.cprbck1ntsc-rot.cop1,a1
  1511.     move.l    #$8b29fffe,d0
  1512.  
  1513. rot.split
  1514.     move.l    #$00880000,(a1)    ;set break
  1515.     move.l    var_cprbck(a0),a2
  1516.     cmp.b    #$ff,(a2)        ;menu uit ?
  1517.     bne    rot.a
  1518.     move.l    d0,(a1)
  1519. rot.a
  1520.  
  1521.     move.l    rotcolrot1-rot(a5),d7
  1522.     move.l    rotcolnum1-rot(a5),d6
  1523.     move.l    #0,d4
  1524.     bsr    rotset
  1525.     
  1526.     move.l    rotcolrot2-rot(a5),d7
  1527.     move.l    rotcolnum2-rot(a5),d6
  1528.     move.l    #4,d4
  1529.     bsr    rotset
  1530.     
  1531.     move.l    rotcolrot3-rot(a5),d7
  1532.     move.l    rotcolnum3-rot(a5),d6
  1533.     move.l    #8,d4
  1534.     bsr    rotset
  1535.     
  1536.  
  1537.     sub.l    a0,a0        ;geen pic
  1538.  
  1539.     ifd    rout
  1540.     move.l    #rotpic,a0    ;testpicture !!!
  1541.     endc
  1542.  
  1543.     lea    rot.cop1,a1        ;copperlist
  1544.     add.l    rot.buf-rot(a5),a1    ;double buffer
  1545.     move.l    a1,d1
  1546.     eor.l    #rot.cop2-rot.cop1,rot.buf-rot(a5)    ;buffer swap
  1547.     movem.l    (sp)+,d2-d7/a1-a6
  1548.     rts
  1549.  
  1550. rotset
  1551.     movem.l    d0-d7/a0-a6,-(sp)
  1552.     tst.b    d7        ;welke routine ?
  1553.     bne    rotset.bb
  1554.     bsr    rotbig
  1555.     bra    rotset.end
  1556. rotset.bb
  1557.     cmp.b    #1,d7
  1558.     bne    rotset.c
  1559.     bsr    rotcol
  1560.     bra    rotset.end
  1561. rotset.c
  1562. rotset.end
  1563.     movem.l    (sp)+,d0-d7/a0-a6
  1564.     rts
  1565.  
  1566. rotcol
  1567.     movem.l    d0-d7/a0-a6,-(sp)
  1568.     lea    rot.ctab,a0        ;kleureninfo
  1569.     muls    #5*2,d6
  1570.     add.l    d6,a0
  1571.     
  1572.     lea    rot.copcol1,a1    ;copperlist
  1573.     add.l    rot.buf-rot(a5),a1    ;double buffer
  1574.     add.l    d4,a1        ;coppos
  1575.  
  1576.     cmp.w    #$102,4(a1)        ;zichtbaar ?
  1577.     beq    rotcol.end
  1578.  
  1579.     move.w    (a0),d0
  1580.     move.w    2(a0),d1
  1581.     move.w    4(a0),d2
  1582.  
  1583.     move.w    #16-1,d3
  1584. rotcol.a
  1585.     move.w    d0,d5
  1586.     move.w    #16-1,d7
  1587. rotcol.c
  1588.     move.w    d0,6(a1)
  1589.     move.w    d0,196+6(a1)
  1590.     move.w    d0,2*196+6(a1)
  1591.     move.w    d0,3*196+6(a1)
  1592.     move.w    d0,4*196+6(a1)
  1593.     move.w    d0,5*196+6(a1)
  1594.     move.w    d0,6*196+6(a1)
  1595.     move.w    d0,7*196+6(a1)
  1596.     move.w    d0,8*196+6(a1)
  1597.     move.w    d0,9*196+6(a1)
  1598.     move.w    d0,10*196+6(a1)
  1599.     move.w    d0,11*196+6(a1)
  1600.     move.w    d0,12*196+6(a1)
  1601.     move.w    d0,13*196+6(a1)
  1602.     move.w    d0,14*196+6(a1)
  1603.     move.w    d0,15*196+6(a1)
  1604.     move.w    d0,16*196+6(a1)
  1605.     add.w    d1,d0
  1606.     lea    12(a1),a1
  1607.     dbra    d7,rotcol.c
  1608.  
  1609.     add.l    #(17*(12*16+4)-(12*16)),a1
  1610.     move.w    d5,d0
  1611.     add.w    d2,d0
  1612.     dbra    d3,rotcol.a
  1613.  
  1614.     move.w    (a0),d0
  1615.     move.w    6(a0),d1
  1616.     add.w    d1,d0
  1617.     move.w    d0,(a0)
  1618.  
  1619.     add.w    #1,8(a0)
  1620.     cmp.w    #15,8(a0)
  1621.     bne    rotcol.f
  1622.     clr.w    8(a0)
  1623.     neg.w    6(a0)
  1624. rotcol.f
  1625. rotcol.end
  1626.     movem.l    (sp)+,d0-d7/a0-a6
  1627.     rts
  1628.  
  1629. rotbig
  1630.     movem.l    d0-d7/a0-a6,-(sp)
  1631.     lea    rot.ctab2,a0    ;kleureninfo
  1632.     muls    #4*5,d6
  1633.     add.l    d6,a0
  1634.     
  1635.     lea    rot.copcol1,a1    ;copperlist
  1636.     add.l    rot.buf-rot(a5),a1    ;double buffer
  1637.     add.l    d4,a1        ;coppos
  1638.  
  1639.     cmp.w    #$102,4(a1)        ;zichtbaar ?
  1640.     beq    rotbig.end
  1641.     
  1642.     move.l    (a0)+,a2        ;colortabel
  1643.     add.l    a5,a2
  1644.     
  1645.     move.l    (a2)+,d6        ;breedte in words
  1646.     
  1647.     move.l    (a0)+,a3        ;x movtab
  1648.     add.l    a5,a3
  1649.  
  1650.     move.l    (a0),d0        ;x pos halen
  1651.     cmp.w    #-1,(a3,d0)        ;einde ?
  1652.     bne    rotbig.g
  1653.     clr.l    d0
  1654. rotbig.g
  1655.     clr.l    d1
  1656.     move.w    (a3,d0),d1
  1657.     add.l    d1,d1        ;*2
  1658.     add.l    d1,a2        ;+x
  1659.     add.l    #2,d0
  1660.     move.l    d0,(a0)+        ;x pos zettem
  1661.     
  1662.     move.l    (a0)+,a3        ;y movtab
  1663.     add.l    a5,a3
  1664.  
  1665.     move.l    (a0),d0        ;y pos halen
  1666.     cmp.w    #-1,(a3,d0)        ;einde ?
  1667.     bne    rotbig.ga
  1668.     clr.l    d0
  1669. rotbig.ga
  1670.     clr.l    d1
  1671.     move.w    (a3,d0),d1
  1672.     add.l    d1,d1        ;*2
  1673.     muls    d6,d1        ;*breedte in words
  1674.     add.l    d1,a2        ;+y
  1675.     add.l    #2,d0
  1676.     move.l    d0,(a0)+        ;y pos zettem
  1677.     
  1678.     add.l    d6,d6        ;*2
  1679.     sub.l    #16*2,d6        ;breedte>modulo
  1680.  
  1681.     move.w    #16-1,d3
  1682. rotbig.a
  1683.     move.w    #16-1,d7
  1684. rotbig.c
  1685.     move.w    (a2)+,d0
  1686.     move.w    d0,6(a1)
  1687.     move.w    d0,196+6(a1)
  1688.     move.w    d0,2*196+6(a1)
  1689.     move.w    d0,3*196+6(a1)
  1690.     move.w    d0,4*196+6(a1)
  1691.     move.w    d0,5*196+6(a1)
  1692.     move.w    d0,6*196+6(a1)
  1693.     move.w    d0,7*196+6(a1)
  1694.     move.w    d0,8*196+6(a1)
  1695.     move.w    d0,9*196+6(a1)
  1696.     move.w    d0,10*196+6(a1)
  1697.     move.w    d0,11*196+6(a1)
  1698.     move.w    d0,12*196+6(a1)
  1699.     move.w    d0,13*196+6(a1)
  1700.     move.w    d0,14*196+6(a1)
  1701.     move.w    d0,15*196+6(a1)
  1702.     move.w    d0,16*196+6(a1)
  1703.     lea    12(a1),a1
  1704.     dbra    d7,rotbig.c
  1705.  
  1706.     add.l    #(17*(12*16+4)-(12*16)),a1
  1707.     add.l    d6,a2            ;modulo
  1708.     dbra    d3,rotbig.a
  1709.  
  1710. rotbig.end
  1711.     movem.l    (sp)+,d0-d7/a0-a6
  1712.     rts
  1713.  
  1714. rotfil
  1715.     movem.l    d0-d7/a0-a6,-(sp)
  1716.     lea    rot.copcol1,a1    ;copperlist
  1717.     add.l    rot.buf-rot(a5),a1    ;double buffer
  1718.  
  1719.     lea    rotfiltab,a2    ;fillup data halen
  1720.     move.l    rotcolfil-rot(a5),d0    ;fillup nummer halen
  1721.     muls    #3*4,d0
  1722.     add.l    d0,a2
  1723.     
  1724.     move.w    (a2),d0
  1725.     cmp.w    4(a1),d0        ;al gedaan ?
  1726.     bne    rotfil.f
  1727.     move.w    4(a2),d0
  1728.     cmp.w    8(a1),d0
  1729.     bne    rotfil.f
  1730.     move.w    8(a2),d0
  1731.     cmp.w    12(a1),d0
  1732.     beq    rotfil.end
  1733.  
  1734. rotfil.f
  1735.     move.w    #$23,d6
  1736.     move.w    #16-1,d3
  1737. rotfil.a
  1738.     move.w    #17-1,d7
  1739. rotfil.c
  1740.     move.l    #$0029fffe,(a1)+
  1741.     move.b    d6,-4(a1)
  1742.     move.w    #16-1,d0
  1743. rotfil.d
  1744.     move.l    (a2),(a1)
  1745.     move.l    4(a2),4(a1)
  1746.     move.l    8(a2),8(a1)
  1747.     lea    12(a1),a1
  1748.     dbra    d0,rotfil.d
  1749.     add.w    #1,d6
  1750.     dbra    d7,rotfil.c
  1751.     dbra    d3,rotfil.a
  1752. rotfil.end
  1753.     movem.l    (sp)+,d0-d7/a0-a6
  1754.     rts
  1755.  
  1756. rot.buf        dc.l    0
  1757.  
  1758. rotcolfil        dc.l    0
  1759. rotcolnum1        dc.l    0
  1760. rotcolnum2        dc.l    0
  1761. rotcolnum3        dc.l    0
  1762. rotcolrot1        dc.l    0
  1763. rotcolrot2        dc.l    0
  1764. rotcolrot3        dc.l    0
  1765.  
  1766.  
  1767. rotfiltab
  1768.     dc.l    $01800000,$01020000,$01020000    ;copper fillupdata
  1769.     dc.l    $01820000,$01020000,$01020000
  1770.     dc.l    $01920000,$01020000,$01020000
  1771.     dc.l    $01800000,$01820000,$01020000
  1772.     dc.l    $01800000,$01920000,$01020000
  1773.     dc.l    $01820000,$01920000,$01020000
  1774.     dc.l    $01800000,$01820000,$01920000
  1775.     dc.l    $01020000,$01020000,$01020000
  1776.  
  1777.     ;    str  x+   y+   str+
  1778. rot.ctab
  1779.     dc.w    $000,$100,$010,$001,0    ;6 moving 256 grids
  1780.     dc.w    $000,$010,$001,$100,0
  1781.     dc.w    $000,$001,$100,$010,0
  1782.     dc.w    $000,$100,$001,$010,0
  1783.     dc.w    $000,$010,$100,$001,0
  1784.     dc.w    $000,$001,$010,$100,0
  1785.  
  1786.     dc.w    $00f,$100,$010,$000,0    ;6 light grids
  1787.     dc.w    $f00,$010,$001,$000,0
  1788.     dc.w    $0f0,$001,$100,$000,0
  1789.     dc.w    $0f0,$100,$001,$000,0
  1790.     dc.w    $00f,$010,$100,$000,0
  1791.     dc.w    $f00,$001,$010,$000,0
  1792.  
  1793.     ;    color    sinx    p siny      p
  1794. rot.ctab2
  1795.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1796.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1797.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1798.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1799.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1800.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1801.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1802.     dc.l    rotcoltab.a-rot,rotsintab.a-rot,0,rotsintab.bb-rot,0
  1803.  
  1804. rotsintab.a
  1805.        dc.w       24,24,25,25,26,26,26,27,27,28,28,28
  1806.        dc.w       29,29,30,30,30,31,31,31,32,32,33,33
  1807.        dc.w       33,34,34,34,35,35,36,36,36,37,37,37
  1808.        dc.w       38,38,38,38,39,39,39,40,40,40,41,41
  1809.        dc.w       41,41,42,42,42,42,43,43,43,43,44,44
  1810.        dc.w       44,44,44,44,45,45,45,45,45,45,46,46
  1811.        dc.w       46,46,46,46,46,46,46,47,47,47,47,47
  1812.        dc.w       47,47,47,47,47,47,47,47,47,47,47,47
  1813.        dc.w       47,47,47,47,47,47,46,46,46,46,46,46
  1814.        dc.w       46,46,46,45,45,45,45,45,45,44,44,44
  1815.        dc.w       44,44,44,43,43,43,43,42,42,42,42,41
  1816.        dc.w       41,41,41,40,40,40,39,39,39,38,38,38
  1817.        dc.w       38,37,37,37,36,36,36,35,35,34,34,34
  1818.        dc.w       33,33,33,32,32,31,31,31,30,30,30,29
  1819.        dc.w       29,28,28,28,27,27,26,26,26,25,25,24
  1820.        dc.w       24,24,23,23,22,22,22,21,21,20,20,20
  1821.        dc.w       19,19,18,18,18,17,17,17,16,16,15,15
  1822.        dc.w       15,14,14,14,13,13,13,12,12,11,11,11
  1823.        dc.w       10,10,10,10,9,9,9,8,8,8,7,7
  1824.        dc.w       7,7,6,6,6,6,5,5,5,5,4,4
  1825.        dc.w       4,4,4,4,3,3,3,3,3,3,2,2
  1826.        dc.w       2,2,2,2,2,2,2,1,1,1,1,1
  1827.        dc.w       1,1,1,1,1,1,1,1,1,1,1,1
  1828.        dc.w       1,1,1,1,1,1,2,2,2,2,2,2
  1829.        dc.w       2,2,2,3,3,3,3,3,3,4,4,4
  1830.        dc.w       4,4,4,5,5,5,5,6,6,6,6,7
  1831.        dc.w       7,7,7,8,8,8,9,9,9,10,10,10
  1832.        dc.w       10,11,11,11,12,12,12,13,13,14,14,14
  1833.        dc.w       15,15,15,16,16,17,17,17,18,18,18,19
  1834.        dc.w       19,20,20,20,21,21,22,22,22,23,23,24
  1835.        dc.w       24
  1836.     dc.w    -1
  1837.  
  1838. rotsintab.bb
  1839.        dc.w       7,7,7,8,8,8,8,8,8,9,9,9
  1840.        dc.w       9,9,9,10,10,10,10,10,10,11,11,11
  1841.        dc.w       11,11,11,11,12,12,12,12,12,12,12,13
  1842.        dc.w       13,13,13,13,13,13,13,13,14,14,14,14
  1843.        dc.w       14,14,14,14,14,14,14,14,15,15,15,15
  1844.        dc.w       15,15,15,15,15,15,15,15,15,15,15,15
  1845.        dc.w       15,15,15,15,15,15,15,15,15,15,15,15
  1846.        dc.w       15,15,15,15,15,14,14,14,14,14,14,14
  1847.        dc.w       14,14,14,14,14,13,13,13,13,13,13,13
  1848.        dc.w       13,13,12,12,12,12,12,12,12,11,11,11
  1849.        dc.w       11,11,11,11,10,10,10,10,10,10,9,9
  1850.        dc.w       9,9,9,9,8,8,8,8,8,8,7,7
  1851.        dc.w       7,7,7,6,6,6,6,6,6,5,5,5
  1852.        dc.w       5,5,5,4,4,4,4,4,4,3,3,3
  1853.        dc.w       3,3,3,3,2,2,2,2,2,2,2,1
  1854.        dc.w       1,1,1,1,1,1,1,1,0,0,0,0
  1855.        dc.w       0,0,0,0,0,0,0,0,0,0,0,0
  1856.        dc.w       0,0,0,0,0,0,0,0,0,0,0,0
  1857.        dc.w       0,0,0,0,0,0,0,0,0,0,0,0
  1858.        dc.w       0,0,0,0,0,0,0,0,0,0,0,0
  1859.        dc.w       0,0,0,0,0,1,1,1,1,1,1,1
  1860.        dc.w       1,1,2,2,2,2,2,2,2,3,3,3
  1861.        dc.w       3,3,3,3,4,4,4,4,4,4,5,5
  1862.        dc.w       5,5,5,5,6,6,6,6,6,6,7,7
  1863.        dc.w       7
  1864.     dc.w    -1
  1865.  
  1866. rotcoltab.a
  1867.     dc.l    64    ;breedte in words
  1868.  
  1869.     dc.w    $000,$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a,$00b,$00c,$00d,$00e,$00f
  1870.     dc.w    $00f,$01f,$02f,$03f,$04f,$05f,$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
  1871.     dc.w    $0ff,$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5,$0f4,$0f3,$0f2,$0f1,$0f0
  1872.     dc.w    $0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010,$000
  1873.  
  1874.     dc.w    $100,$101,$102,$103,$104,$105,$106,$107,$108,$109,$10a,$10b,$10c,$10d,$10e,$10f
  1875.     dc.w    $10f,$11f,$12f,$13f,$14f,$15f,$16f,$17f,$18f,$19f,$1af,$1bf,$1cf,$1df,$1ef,$1ff
  1876.     dc.w    $1ff,$1fe,$1fd,$1fc,$1fb,$1fa,$1f9,$1f8,$1f7,$1f6,$1f5,$1f4,$1f3,$1f2,$1f1,$1f0
  1877.     dc.w    $1f0,$1e0,$1d0,$1c0,$1b0,$1a0,$190,$180,$170,$160,$150,$140,$130,$120,$110,$100
  1878.  
  1879.     dc.w    $200,$201,$202,$203,$204,$205,$206,$207,$208,$209,$20a,$20b,$20c,$20d,$20e,$20f
  1880.     dc.w    $20f,$21f,$22f,$23f,$24f,$25f,$26f,$27f,$28f,$29f,$2af,$2bf,$2cf,$2df,$2ef,$2ff
  1881.     dc.w    $2ff,$2fe,$2fd,$2fc,$2fb,$2fa,$2f9,$2f8,$2f7,$2f6,$2f5,$2f4,$2f3,$2f2,$2f1,$2f0
  1882.     dc.w    $2f0,$2e0,$2d0,$2c0,$2b0,$2a0,$290,$280,$270,$260,$250,$240,$230,$220,$210,$200
  1883.  
  1884.     dc.w    $300,$301,$302,$303,$304,$305,$306,$307,$308,$309,$30a,$30b,$30c,$30d,$30e,$30f
  1885.     dc.w    $30f,$31f,$32f,$33f,$34f,$35f,$36f,$37f,$38f,$39f,$3af,$3bf,$3cf,$3df,$3ef,$3ff
  1886.     dc.w    $3ff,$3fe,$3fd,$3fc,$3fb,$3fa,$3f9,$3f8,$3f7,$3f6,$3f5,$3f4,$3f3,$3f2,$3f1,$3f0
  1887.     dc.w    $3f0,$3e0,$3d0,$3c0,$3b0,$3a0,$390,$380,$370,$360,$350,$340,$330,$320,$310,$300
  1888.  
  1889.     dc.w    $400,$401,$402,$403,$404,$405,$406,$407,$408,$409,$40a,$40b,$40c,$40d,$40e,$40f
  1890.     dc.w    $40f,$41f,$42f,$43f,$44f,$45f,$46f,$47f,$48f,$49f,$4af,$4bf,$4cf,$4df,$4ef,$4ff
  1891.     dc.w    $4ff,$4fe,$4fd,$4fc,$4fb,$4fa,$4f9,$4f8,$4f7,$4f6,$4f5,$4f4,$4f3,$4f2,$4f1,$4f0
  1892.     dc.w    $4f0,$4e0,$4d0,$4c0,$4b0,$4a0,$490,$480,$470,$460,$450,$440,$430,$420,$410,$400
  1893.  
  1894.     dc.w    $500,$501,$502,$503,$504,$505,$506,$507,$508,$509,$50a,$50b,$50c,$50d,$50e,$50f
  1895.     dc.w    $50f,$51f,$52f,$53f,$54f,$55f,$56f,$57f,$58f,$59f,$5af,$5bf,$5cf,$5df,$5ef,$5ff
  1896.     dc.w    $5ff,$5fe,$5fd,$5fc,$5fb,$5fa,$5f9,$5f8,$5f7,$5f6,$5f5,$5f4,$5f3,$5f2,$5f1,$5f0
  1897.     dc.w    $5f0,$5e0,$5d0,$5c0,$5b0,$5a0,$590,$580,$570,$560,$550,$540,$530,$520,$510,$500
  1898.  
  1899.     dc.w    $600,$601,$602,$603,$604,$605,$606,$607,$608,$609,$60a,$60b,$60c,$60d,$60e,$60f
  1900.     dc.w    $60f,$61f,$62f,$63f,$64f,$65f,$66f,$67f,$68f,$69f,$6af,$6bf,$6cf,$6df,$6ef,$6ff
  1901.     dc.w    $6ff,$6fe,$6fd,$6fc,$6fb,$6fa,$6f9,$6f8,$6f7,$6f6,$6f5,$6f4,$6f3,$6f2,$6f1,$6f0
  1902.     dc.w    $6f0,$6e0,$6d0,$6c0,$6b0,$6a0,$690,$680,$670,$660,$650,$640,$630,$620,$610,$600
  1903.  
  1904.     dc.w    $700,$701,$702,$703,$704,$705,$706,$707,$708,$709,$70a,$70b,$70c,$70d,$70e,$70f
  1905.     dc.w    $70f,$71f,$72f,$73f,$74f,$75f,$76f,$77f,$78f,$79f,$7af,$7bf,$7cf,$7df,$7ef,$7ff
  1906.     dc.w    $7ff,$7fe,$7fd,$7fc,$7fb,$7fa,$7f9,$7f8,$7f7,$7f6,$7f5,$7f4,$7f3,$7f2,$7f1,$7f0
  1907.     dc.w    $7f0,$7e0,$7d0,$7c0,$7b0,$7a0,$790,$780,$770,$760,$750,$740,$730,$720,$710,$700
  1908.  
  1909.     dc.w    $800,$801,$802,$803,$804,$805,$806,$807,$808,$809,$80a,$80b,$80c,$80d,$80e,$80f
  1910.     dc.w    $80f,$81f,$82f,$83f,$84f,$85f,$86f,$87f,$88f,$89f,$8af,$8bf,$8cf,$8df,$8ef,$8ff
  1911.     dc.w    $8ff,$8fe,$8fd,$8fc,$8fb,$8fa,$8f9,$8f8,$8f7,$8f6,$8f5,$8f4,$8f3,$8f2,$8f1,$8f0
  1912.     dc.w    $8f0,$8e0,$8d0,$8c0,$8b0,$8a0,$890,$880,$870,$860,$850,$840,$830,$820,$810,$800
  1913.  
  1914.     dc.w    $900,$901,$902,$903,$904,$905,$906,$907,$908,$909,$90a,$90b,$90c,$90d,$90e,$90f
  1915.     dc.w    $90f,$91f,$92f,$93f,$94f,$95f,$96f,$97f,$98f,$99f,$9af,$9bf,$9cf,$9df,$9ef,$9ff
  1916.     dc.w    $9ff,$9fe,$9fd,$9fc,$9fb,$9fa,$9f9,$9f8,$9f7,$9f6,$9f5,$9f4,$9f3,$9f2,$9f1,$9f0
  1917.     dc.w    $9f0,$9e0,$9d0,$9c0,$9b0,$9a0,$990,$980,$970,$960,$950,$940,$930,$920,$910,$900
  1918.  
  1919.     dc.w    $a00,$a01,$a02,$a03,$a04,$a05,$a06,$a07,$a08,$a09,$a0a,$a0b,$a0c,$a0d,$a0e,$a0f
  1920.     dc.w    $a0f,$a1f,$a2f,$a3f,$a4f,$a5f,$a6f,$a7f,$a8f,$a9f,$aaf,$abf,$acf,$adf,$aef,$aff
  1921.     dc.w    $aff,$afe,$afd,$afc,$afb,$afa,$af9,$af8,$af7,$af6,$af5,$af4,$af3,$af2,$af1,$af0
  1922.     dc.w    $af0,$ae0,$ad0,$ac0,$ab0,$aa0,$a90,$a80,$a70,$a60,$a50,$a40,$a30,$a20,$a10,$a00
  1923.  
  1924.     dc.w    $b00,$b01,$b02,$b03,$b04,$b05,$b06,$b07,$b08,$b09,$b0a,$b0b,$b0c,$b0d,$b0e,$b0f
  1925.     dc.w    $b0f,$b1f,$b2f,$b3f,$b4f,$b5f,$b6f,$b7f,$b8f,$b9f,$baf,$bbf,$bcf,$bdf,$bef,$bff
  1926.     dc.w    $bff,$bfe,$bfd,$bfc,$bfb,$bfa,$bf9,$bf8,$bf7,$bf6,$bf5,$bf4,$bf3,$bf2,$bf1,$bf0
  1927.     dc.w    $bf0,$be0,$bd0,$bc0,$bb0,$ba0,$b90,$b80,$b70,$b60,$b50,$b40,$b30,$b20,$b10,$b00
  1928.  
  1929.     dc.w    $c00,$c01,$c02,$c03,$c04,$c05,$c06,$c07,$c08,$c09,$c0a,$c0b,$c0c,$c0d,$c0e,$c0f
  1930.     dc.w    $c0f,$c1f,$c2f,$c3f,$c4f,$c5f,$c6f,$c7f,$c8f,$c9f,$caf,$cbf,$ccf,$cdf,$cef,$cff
  1931.     dc.w    $cff,$cfe,$cfd,$cfc,$cfb,$cfa,$cf9,$cf8,$cf7,$cf6,$cf5,$cf4,$cf3,$cf2,$cf1,$cf0
  1932.     dc.w    $cf0,$ce0,$cd0,$cc0,$cb0,$ca0,$c90,$c80,$c70,$c60,$c50,$c40,$c30,$c20,$c10,$c00
  1933.  
  1934.     dc.w    $d00,$d01,$d02,$d03,$d04,$d05,$d06,$d07,$d08,$d09,$d0a,$d0b,$d0c,$d0d,$d0e,$d0f
  1935.     dc.w    $d0f,$d1f,$d2f,$d3f,$d4f,$d5f,$d6f,$d7f,$d8f,$d9f,$daf,$dbf,$dcf,$ddf,$def,$dff
  1936.     dc.w    $dff,$dfe,$dfd,$dfc,$dfb,$dfa,$df9,$df8,$df7,$df6,$df5,$df4,$df3,$df2,$df1,$df0
  1937.     dc.w    $df0,$de0,$dd0,$dc0,$db0,$da0,$d90,$d80,$d70,$d60,$d50,$d40,$d30,$d20,$d10,$d00
  1938.  
  1939.     dc.w    $e00,$e01,$e02,$e03,$e04,$e05,$e06,$e07,$e08,$e09,$e0a,$e0b,$e0c,$e0d,$e0e,$e0f
  1940.     dc.w    $e0f,$e1f,$e2f,$e3f,$e4f,$e5f,$e6f,$e7f,$e8f,$e9f,$eaf,$ebf,$ecf,$edf,$eef,$eff
  1941.     dc.w    $eff,$efe,$efd,$efc,$efb,$efa,$ef9,$ef8,$ef7,$ef6,$ef5,$ef4,$ef3,$ef2,$ef1,$ef0
  1942.     dc.w    $ef0,$ee0,$ed0,$ec0,$eb0,$ea0,$e90,$e80,$e70,$e60,$e50,$e40,$e30,$e20,$e10,$e00
  1943.  
  1944.     dc.w    $f00,$f01,$f02,$f03,$f04,$f05,$f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
  1945.     dc.w    $f0f,$f1f,$f2f,$f3f,$f4f,$f5f,$f6f,$f7f,$f8f,$f9f,$faf,$fbf,$fcf,$fdf,$fef,$fff
  1946.     dc.w    $fff,$ffe,$ffd,$ffc,$ffb,$ffa,$ff9,$ff8,$ff7,$ff6,$ff5,$ff4,$ff3,$ff2,$ff1,$ff0
  1947.     dc.w    $ff0,$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50,$f40,$f30,$f20,$f10,$f00
  1948.  
  1949.     dc.w    $e00,$e01,$e02,$e03,$e04,$e05,$e06,$e07,$e08,$e09,$e0a,$e0b,$e0c,$e0d,$e0e,$e0f
  1950.     dc.w    $e0f,$e1f,$e2f,$e3f,$e4f,$e5f,$e6f,$e7f,$e8f,$e9f,$eaf,$ebf,$ecf,$edf,$eef,$eff
  1951.     dc.w    $eff,$efe,$efd,$efc,$efb,$efa,$ef9,$ef8,$ef7,$ef6,$ef5,$ef4,$ef3,$ef2,$ef1,$ef0
  1952.     dc.w    $ef0,$ee0,$ed0,$ec0,$eb0,$ea0,$e90,$e80,$e70,$e60,$e50,$e40,$e30,$e20,$e10,$e00
  1953.  
  1954.     dc.w    $d00,$d01,$d02,$d03,$d04,$d05,$d06,$d07,$d08,$d09,$d0a,$d0b,$d0c,$d0d,$d0e,$d0f
  1955.     dc.w    $d0f,$d1f,$d2f,$d3f,$d4f,$d5f,$d6f,$d7f,$d8f,$d9f,$daf,$dbf,$dcf,$ddf,$def,$dff
  1956.     dc.w    $dff,$dfe,$dfd,$dfc,$dfb,$dfa,$df9,$df8,$df7,$df6,$df5,$df4,$df3,$df2,$df1,$df0
  1957.     dc.w    $df0,$de0,$dd0,$dc0,$db0,$da0,$d90,$d80,$d70,$d60,$d50,$d40,$d30,$d20,$d10,$d00
  1958.  
  1959.     dc.w    $c00,$c01,$c02,$c03,$c04,$c05,$c06,$c07,$c08,$c09,$c0a,$c0b,$c0c,$c0d,$c0e,$c0f
  1960.     dc.w    $c0f,$c1f,$c2f,$c3f,$c4f,$c5f,$c6f,$c7f,$c8f,$c9f,$caf,$cbf,$ccf,$cdf,$cef,$cff
  1961.     dc.w    $cff,$cfe,$cfd,$cfc,$cfb,$cfa,$cf9,$cf8,$cf7,$cf6,$cf5,$cf4,$cf3,$cf2,$cf1,$cf0
  1962.     dc.w    $cf0,$ce0,$cd0,$cc0,$cb0,$ca0,$c90,$c80,$c70,$c60,$c50,$c40,$c30,$c20,$c10,$c00
  1963.  
  1964.     dc.w    $b00,$b01,$b02,$b03,$b04,$b05,$b06,$b07,$b08,$b09,$b0a,$b0b,$b0c,$b0d,$b0e,$b0f
  1965.     dc.w    $b0f,$b1f,$b2f,$b3f,$b4f,$b5f,$b6f,$b7f,$b8f,$b9f,$baf,$bbf,$bcf,$bdf,$bef,$bff
  1966.     dc.w    $bff,$bfe,$bfd,$bfc,$bfb,$bfa,$bf9,$bf8,$bf7,$bf6,$bf5,$bf4,$bf3,$bf2,$bf1,$bf0
  1967.     dc.w    $bf0,$be0,$bd0,$bc0,$bb0,$ba0,$b90,$b80,$b70,$b60,$b50,$b40,$b30,$b20,$b10,$b00
  1968.  
  1969.     dc.w    $a00,$a01,$a02,$a03,$a04,$a05,$a06,$a07,$a08,$a09,$a0a,$a0b,$a0c,$a0d,$a0e,$a0f
  1970.     dc.w    $a0f,$a1f,$a2f,$a3f,$a4f,$a5f,$a6f,$a7f,$a8f,$a9f,$aaf,$abf,$acf,$adf,$aef,$aff
  1971.     dc.w    $aff,$afe,$afd,$afc,$afb,$afa,$af9,$af8,$af7,$af6,$af5,$af4,$af3,$af2,$af1,$af0
  1972.     dc.w    $af0,$ae0,$ad0,$ac0,$ab0,$aa0,$a90,$a80,$a70,$a60,$a50,$a40,$a30,$a20,$a10,$a00
  1973.  
  1974.     dc.w    $900,$901,$902,$903,$904,$905,$906,$907,$908,$909,$90a,$90b,$90c,$90d,$90e,$90f
  1975.     dc.w    $90f,$91f,$92f,$93f,$94f,$95f,$96f,$97f,$98f,$99f,$9af,$9bf,$9cf,$9df,$9ef,$9ff
  1976.     dc.w    $9ff,$9fe,$9fd,$9fc,$9fb,$9fa,$9f9,$9f8,$9f7,$9f6,$9f5,$9f4,$9f3,$9f2,$9f1,$9f0
  1977.     dc.w    $9f0,$9e0,$9d0,$9c0,$9b0,$9a0,$990,$980,$970,$960,$950,$940,$930,$920,$910,$900
  1978.  
  1979.     dc.w    $800,$801,$802,$803,$804,$805,$806,$807,$808,$809,$80a,$80b,$80c,$80d,$80e,$80f
  1980.     dc.w    $80f,$81f,$82f,$83f,$84f,$85f,$86f,$87f,$88f,$89f,$8af,$8bf,$8cf,$8df,$8ef,$8ff
  1981.     dc.w    $8ff,$8fe,$8fd,$8fc,$8fb,$8fa,$8f9,$8f8,$8f7,$8f6,$8f5,$8f4,$8f3,$8f2,$8f1,$8f0
  1982.     dc.w    $8f0,$8e0,$8d0,$8c0,$8b0,$8a0,$890,$880,$870,$860,$850,$840,$830,$820,$810,$800
  1983.  
  1984.     dc.w    $700,$701,$702,$703,$704,$705,$706,$707,$708,$709,$70a,$70b,$70c,$70d,$70e,$70f
  1985.     dc.w    $70f,$71f,$72f,$73f,$74f,$75f,$76f,$77f,$78f,$79f,$7af,$7bf,$7cf,$7df,$7ef,$7ff
  1986.     dc.w    $7ff,$7fe,$7fd,$7fc,$7fb,$7fa,$7f9,$7f8,$7f7,$7f6,$7f5,$7f4,$7f3,$7f2,$7f1,$7f0
  1987.     dc.w    $7f0,$7e0,$7d0,$7c0,$7b0,$7a0,$790,$780,$770,$760,$750,$740,$730,$720,$710,$700
  1988.  
  1989.     dc.w    $600,$601,$602,$603,$604,$605,$606,$607,$608,$609,$60a,$60b,$60c,$60d,$60e,$60f
  1990.     dc.w    $60f,$61f,$62f,$63f,$64f,$65f,$66f,$67f,$68f,$69f,$6af,$6bf,$6cf,$6df,$6ef,$6ff
  1991.     dc.w    $6ff,$6fe,$6fd,$6fc,$6fb,$6fa,$6f9,$6f8,$6f7,$6f6,$6f5,$6f4,$6f3,$6f2,$6f1,$6f0
  1992.     dc.w    $6f0,$6e0,$6d0,$6c0,$6b0,$6a0,$690,$680,$670,$660,$650,$640,$630,$620,$610,$600
  1993.  
  1994.     dc.w    $500,$501,$502,$503,$504,$505,$506,$507,$508,$509,$50a,$50b,$50c,$50d,$50e,$50f
  1995.     dc.w    $50f,$51f,$52f,$53f,$54f,$55f,$56f,$57f,$58f,$59f,$5af,$5bf,$5cf,$5df,$5ef,$5ff
  1996.     dc.w    $5ff,$5fe,$5fd,$5fc,$5fb,$5fa,$5f9,$5f8,$5f7,$5f6,$5f5,$5f4,$5f3,$5f2,$5f1,$5f0
  1997.     dc.w    $5f0,$5e0,$5d0,$5c0,$5b0,$5a0,$590,$580,$570,$560,$550,$540,$530,$520,$510,$500
  1998.  
  1999.     dc.w    $400,$401,$402,$403,$404,$405,$406,$407,$408,$409,$40a,$40b,$40c,$40d,$40e,$40f
  2000.     dc.w    $40f,$41f,$42f,$43f,$44f,$45f,$46f,$47f,$48f,$49f,$4af,$4bf,$4cf,$4df,$4ef,$4ff
  2001.     dc.w    $4ff,$4fe,$4fd,$4fc,$4fb,$4fa,$4f9,$4f8,$4f7,$4f6,$4f5,$4f4,$4f3,$4f2,$4f1,$4f0
  2002.     dc.w    $4f0,$4e0,$4d0,$4c0,$4b0,$4a0,$490,$480,$470,$460,$450,$440,$430,$420,$410,$400
  2003.  
  2004.     dc.w    $300,$301,$302,$303,$304,$305,$306,$307,$308,$309,$30a,$30b,$30c,$30d,$30e,$30f
  2005.     dc.w    $30f,$31f,$32f,$33f,$34f,$35f,$36f,$37f,$38f,$39f,$3af,$3bf,$3cf,$3df,$3ef,$3ff
  2006.     dc.w    $3ff,$3fe,$3fd,$3fc,$3fb,$3fa,$3f9,$3f8,$3f7,$3f6,$3f5,$3f4,$3f3,$3f2,$3f1,$3f0
  2007.     dc.w    $3f0,$3e0,$3d0,$3c0,$3b0,$3a0,$390,$380,$370,$360,$350,$340,$330,$320,$310,$300
  2008.  
  2009.     dc.w    $200,$201,$202,$203,$204,$205,$206,$207,$208,$209,$20a,$20b,$20c,$20d,$20e,$20f
  2010.     dc.w    $20f,$21f,$22f,$23f,$24f,$25f,$26f,$27f,$28f,$29f,$2af,$2bf,$2cf,$2df,$2ef,$2ff
  2011.     dc.w    $2ff,$2fe,$2fd,$2fc,$2fb,$2fa,$2f9,$2f8,$2f7,$2f6,$2f5,$2f4,$2f3,$2f2,$2f1,$2f0
  2012.     dc.w    $2f0,$2e0,$2d0,$2c0,$2b0,$2a0,$290,$280,$270,$260,$250,$240,$230,$220,$210,$200
  2013.  
  2014.     dc.w    $100,$101,$102,$103,$104,$105,$106,$107,$108,$109,$10a,$10b,$10c,$10d,$10e,$10f
  2015.     dc.w    $10f,$11f,$12f,$13f,$14f,$15f,$16f,$17f,$18f,$19f,$1af,$1bf,$1cf,$1df,$1ef,$1ff
  2016.     dc.w    $1ff,$1fe,$1fd,$1fc,$1fb,$1fa,$1f9,$1f8,$1f7,$1f6,$1f5,$1f4,$1f3,$1f2,$1f1,$1f0
  2017.     dc.w    $1f0,$1e0,$1d0,$1c0,$1b0,$1a0,$190,$180,$170,$160,$150,$140,$130,$120,$110,$100
  2018.  
  2019.     dc.w    $000,$001,$002,$003,$004,$005,$006,$007,$008,$009,$00a,$00b,$00c,$00d,$00e,$00f
  2020.     dc.w    $00f,$01f,$02f,$03f,$04f,$05f,$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
  2021.     dc.w    $0ff,$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5,$0f4,$0f3,$0f2,$0f1,$0f0
  2022.     dc.w    $0f0,$0e0,$0d0,$0c0,$0b0,$0a0,$090,$080,$070,$060,$050,$040,$030,$020,$010,$000
  2023.  
  2024. rot.cop1
  2025.     dc.w    $080,$0000,$082,$0000
  2026. rot.copcol1
  2027.     ds.b    104*(12*16+4)
  2028. rot.cprbck1ntsc
  2029.     ds.b    56*(12*16+4)
  2030. rot.cprbck1
  2031.     ds.b    56*(12*16+4)
  2032. rot.cprend1ntsc
  2033.     ds.b    56*(12*16+4)
  2034. rot.cprend1
  2035.     dc.w    $0088,$0000
  2036.  
  2037. rot.cop2
  2038.     dc.w    $080,$0000,$082,$0000
  2039. rot.copcol2
  2040.     ds.b    104*(12*16+4)
  2041. rot.cprbck2ntsc
  2042.     ds.b    56*(12*16+4)
  2043. rot.cprbck2
  2044.     ds.b    56*(12*16+4)
  2045. rot.cprend2ntsc
  2046.     ds.b    56*(12*16+4)
  2047. rot.cprend2
  2048.     dc.w    $0088,$0000
  2049.  
  2050. rot.e
  2051.  
  2052. ;**********************************************************************
  2053.  
  2054. ;and here are the incbin-files....
  2055.  
  2056.         ifd    rout
  2057.         cnop    0,2
  2058. rotpic
  2059.         incbin    'videotracker:effect/triangle_l4.pic'
  2060.         endc
  2061.         
  2062.